Научите лиспу на примере (или как kpblc, VVA и компания пытаются обучить чайника лиспу) - Страница 136
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

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

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

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

Со школы не ладится у меня с программированием. Все предметы щелкал, а на экзамене по информатике (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.
Просмотров: 2047988
 
Непрочитано 31.07.2015, 00:35
#2701
Кулик Алексей aka kpblc
Moderator

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


ПОпробовал нечто типа
Код:
[Выделить все]
 (setq lst ((LAMBDA( / res ) (vlax-for item(vla-get-layers (vla-get-ActiveDocument(vlax-get-acad-object)))
(setq res (cons (vlax-vla-object->ename item) res)))res)))
Обнаружил прикольный момент: vla-get-name подставляет "?", а (cdr(assoc 2 (entget ...))) - "\U+2205108x4.0". Может, в эту сторону покопаться?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 31.07.2015, 01:40
#2702
skkkk


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


Алексей, знаешь, я и проверять почему-то сразу даже не стал через (entget), подумал, что раз уж продвинутая объектная модель не умеет кодировки понимать, куда уж там... А вот тебе, бабушка, и автолиспов день!
В общем, не мудрствуя, обнаружилось, что конструкция
Код:
[Выделить все]
 (vla-get-Lock (vla-Item (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))) (cdr (assoc 8 (entget (car (entsel)))))))
сработала без лишних вопросов. Как всегда спасибо чрезвычайное тебе, Алексей .
Offtop: А вы всё vla-vla-vla...
skkkk вне форума  
 
Непрочитано 31.07.2015, 14:10
#2703
gomer

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


Цитата:
Сообщение от skkkk Посмотреть сообщение
А вот тебе, бабушка, и автолиспов день!
а функцию tblsearch не знал да еще и забыл?
gomer вне форума  
 
Непрочитано 06.08.2015, 11:08
#2704
sathalex


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


Подскажите, что мне поправить в этом коде, чтоб высота текста была не 3, а 0.3 ? Спасибо.
Код:
[Выделить все]
 (defun c:date_MV( / dat tday tmon tyer strok pt pt1 old_cmd osm *error*) 
 (defun *error* (msg)(princ msg)(setvar "OSMODE" osm)) 
 (setq old_cmd  (getvar "CMDECHO") 
           osm  (getvar "OSMODE")) 
 (setvar "CMDECHO" 0) 
  
 (setq dat (itoa (fix(getvar "CDATE"))) 
      tday (substr dat 7 2) 
      tmon (substr dat 5 2) 
      tyer (substr dat 3 2) 
    strok (strcat "" tday "." tmon "." tyer "") 
        pt (getpoint "\nТочка вставки текста: ") 
 ) 
 (setq pt (list (+(car pt) 1.) (+(cadr pt) 1.))) 
 (setq pt1 (list (+(car pt) 8.) (+(cadr pt) 0.))) 
 (setvar "OSMODE" 0) 
(if (zerop (cdr (assoc 40 (tblsearch "STYLE" (getvar "TEXTSTYLE"))))) 
  (COMMAND "_TEXT" "_j" "_f" pt pt1 3.0 strok) ;_ нулевая высота текста Будет запрос высоты 
  (COMMAND "_TEXT" "_j" "_f" pt pt1 strok)     ;_ фиксированнная высота Запроса не будет 
  );_end of if
 ;;;Высота 3 ===== 
 (setq strok (entget(entlast))) 
 (setq strok (subst (cons 40 3.0)(assoc 40 strok) strok)) 
 (entmod strok) 
 ;;;======  
 (setvar "CMDECHO" old_cmd) 
 (setvar "OSMODE" osm) 
 (princ) 
)
sathalex вне форума  
 
Непрочитано 06.08.2015, 11:25
#2705
Vladimir_Sergeevich

рисую дороги, в перерывах курю Lisp
 
Регистрация: 20.04.2011
Пермь
Сообщений: 475
<phrase 1= Отправить сообщение для Vladimir_Sergeevich с помощью Skype™


строки 19 и 23.
По идее можно только в 23, ибо там все равно исправит на нужный (cons 40 0.3)
__________________
Не труд сделал из обезьяны человека, а лень и жажда халявы...
Vladimir_Sergeevich вне форума  
 
Непрочитано 06.08.2015, 11:58
#2706
sathalex


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


Цитата:
Сообщение от Vladimir_Sergeevich Посмотреть сообщение
строки 19 и 23.
По идее можно только в 23, ибо там все равно исправит на нужный (cons 40 0.3)
Спасибо. А как бы мне еще сделать чтоб вставлялось не текст, а мтекст?
sathalex вне форума  
 
Непрочитано 06.08.2015, 17:57
#2707
skkkk


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


Цитата:
Сообщение от sathalex Посмотреть сообщение
как бы мне еще сделать чтоб вставлялось не текст, а мтекст?
Посмотреть опции команды MTEXT, а лучше -MTEXT, например, здесь и прописать их в тех же строках, начинающихся с (command.... Опции - в кавычках, предваряя знаком подчеркивания (например, "_J"), а переменные (strok) - без кавычек. Возможно, придется чуток поэкспериментировать.
skkkk вне форума  
 
Непрочитано 09.08.2015, 19:59
#2708
kurstep


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


Кто нибудь сталкивался с тем что при копировании через буфер обмена русского текста в редактор visual lisp иногда вместо символов текста выводятся знаки вопроса. Тут видимо дело в кодировке. Есть ли способ избавиться от этого?
kurstep вне форума  
 
Непрочитано 09.08.2015, 20:30
#2709
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от kurstep Посмотреть сообщение
Кто нибудь сталкивался с тем что при копировании через буфер обмена русского текста в редактор visual lisp иногда вместо символов текста выводятся знаки вопроса. Тут видимо дело в кодировке. Есть ли способ избавиться от этого?
перед копированием и в источнике, и в редакторе lisp перейдите на русский.. а потом лишь копируйте... такая же ерунда в редакторе VBA - думаю, поможет)
Сергей812 вне форума  
 
Непрочитано 11.08.2015, 09:29
#2710
Jerald

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


Коллеги, не подскажите, как отключить предупреждение системы безопасности при автоподгрузке .lsp?
Jerald вне форума  
 
Непрочитано 11.08.2015, 10:37
#2711
Кулик Алексей aka kpblc
Moderator

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


http://adn-cis.org/search.html?query=secure
http://adn-cis.org/acad2016-news.html
http://adn-cis.org/webinar-acad2016-news-report.html
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.08.2015, 12:44
#2712
sathalex


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


Цитата:
Сообщение от Jerald Посмотреть сообщение
как отключить предупреждение системы безопасности при автоподгрузке .lsp?
Вот так...
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 75
Размер:	196.9 Кб
ID:	154784  
sathalex вне форума  
 
Непрочитано 11.08.2015, 13:44
#2713
Кулик Алексей aka kpblc
Moderator

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


Не советую поступать именно так.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.08.2015, 14:20
#2714
trushev


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Не советую поступать именно так.
А если так:
Включить в "Доверенное местоположение". (Настройки-Файлы). Путь с именем папки, где размещенны lisp-файлы (включая вложенные папки), завершить флешем с троеточием - \...
trushev вне форума  
 
Непрочитано 13.08.2015, 12:39
#2715
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


Удалено

Последний раз редактировалось mkung, 17.08.2015 в 07:05.
mkung вне форума  
 
Непрочитано 19.08.2015, 15:11
#2716
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 910


Offtop: удалил

Последний раз редактировалось kacugu, 20.08.2015 в 16:27.
kacugu вне форума  
 
Непрочитано 20.08.2015, 16:26
#2717
kacugu

начинающий инженер-гидротехник
 
Регистрация: 18.04.2010
Санкт-Петербург
Сообщений: 910


Offtop: удалил
kacugu вне форума  
 
Непрочитано 02.09.2015, 14:31
#2718
mkung


 
Регистрация: 05.09.2007
RUSSIA
Сообщений: 166


Хранится ли в чертеже информация о том, в каком вертикальном приложении он был создан (Electrical, Civil 3D и т.д.)?
Если да - то где и как достать Лиспом?
Заранее благодарен.
mkung вне форума  
 
Непрочитано 13.09.2015, 15:57
1 | #2719
gomer

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


Всех с праздничком!
gomer вне форума  
 
Непрочитано 06.10.2015, 13:48
#2720
Neo


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


помогите понять идеологию работы со списками. есть список вида (("1" "a" "b") ("1" "c" "d") ("2" "e" "f")), полученный в результате sql запроса. Как получить ассоциативный список вида: (("1" ("a" "b")("c" "d"))("2" ("e" "f"))).
Neo вне форума  
Ответ
Вернуться   Форум 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