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

Вернуться   Форум 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.
Просмотров: 1965720
 
Непрочитано 07.10.2016, 09:22
#3061
fah


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
1. типичная задача сбора данных для спецификации - извлечение данных чего не используете то?
2. думал, что выбор осуществляете ssget с ключем X и фильтром на вставки блоков. У вас свой подход)
Выбор пока никак не осуществляется( если сможете помочь с кодом для выбора используя ssget, буду рад помощи!
fah вне форума  
 
Непрочитано 07.10.2016, 09:26
1 | #3062
Кулик Алексей aka kpblc
Moderator

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


Во-первых, ошибка в кавычках "_C". Во-вторых, откуда берутся x и y? И в третьих, изучи разницу между апострофом и функцией list
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 07.10.2016, 09:38
#3063
fah


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Во-первых, ошибка в кавычках "_C". Во-вторых, откуда берутся x и y? И в третьих, изучи разницу между апострофом и функцией list
Спасибо, буду пытаться вникнуть, пока позволяет время, но программу требуют...) я в программировании чайник, тут нужна реальная помощь в дополнении/исполнении кода. Буду очень благодарен.
fah вне форума  
 
Непрочитано 07.10.2016, 10:07
1 | #3064
Сергей812


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


Цитата:
Сообщение от fah Посмотреть сообщение
Выбор пока никак не осуществляется( если сможете помочь с кодом для выбора используя ssget, буду рад помощи!
сейчас на том же озоне книга Полещука "AutoLISP и Visual LISP в среде AutoCAD" стоит чуть больше 300р без пересылки - там все эти вопросы рассмотрены. Если ваше чудо начальство требует программу от непрограммистов (вы сами "подставились" скорее всего неосторожными разговорами), то пускай раскошелиться) Во вторых, задачу такого уровня проще было бы написать на VBA в экселе самом, имхо - по COM подцепляетесь к активному документу, грабите вставки блоков - сохраняя в массиве записей имя блока и количество его вставок. Затем формируете нужное количество строк в динтаблице и выводите туда массив записей в соответствующие две колонки. На другом листе есть вторая динтаблица со всеми нужными данными для заполнения спецификации - формулами по имени блока подтягиваете все остальные данные для спецификации. Из экселя можно и стандартные функции выбора примитивов на чертеже вызвать - если нужно только часть чертежа обработать. Ну это уже тема не данной ветки)
Сергей812 вне форума  
 
Непрочитано 07.10.2016, 10:14
#3065
fah


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
сейчас на том же озоне книга Полещука "AutoLISP и Visual LISP в среде AutoCAD" стоит чуть больше 300р без пересылки - там все эти вопросы рассмотрены. Если ваше чудо начальство требует программу от непрограммистов (вы сами "подставились" скорее всего неосторожными разговорами), то пускай раскошелиться) Во вторых, задачу такого уровня проще было бы написать на VBA в экселе самом, имхо - по COM подцепляетесь к активному документу, грабите вставки блоков - сохраняя в массиве записей имя блока и количество его вставок. Затем формируете нужное количество строк в динтаблице и выводите туда массив записей в соответствующие две колонки. На другом листе есть вторая динтаблица со всеми нужными данными для заполнения спецификации - формулами по имени блока подтягиваете все остальные данные для спецификации. Из экселя можно и стандартные функции выбора примитивов на чертеже вызвать - если нужно только часть чертежа обработать. Ну это уже тема не данной ветки)
Эту книгу пытаюсь изучать, она в pdf есть у меня. Просят именно в лиспе сделать, ибо осталось разобраться с выборкой рамкой конкретного блока и выводом в эксель. Vba и прочие языки не подойдут( если кто сможет мне варианты с выбором дописать, было бы очень хорошо, например, тот же ssget до логичного вывода.
fah вне форума  
 
Непрочитано 07.10.2016, 10:20
1 | #3066
Сергей812


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


Цитата:
Сообщение от fah Посмотреть сообщение
Эту книгу пытаюсь изучать, она в pdf есть у меня. Просят именно в лиспе сделать, ибо осталось разобраться с выборкой рамкой конкретного блока и выводом в эксель. Vba и прочие языки не подойдут( если кто сможет мне варианты с выбором дописать, было бы очень хорошо, например, тот же ssget до логичного вывода.
что выведете в эксель то? имена блоков и их количество?
Сергей812 вне форума  
 
Непрочитано 07.10.2016, 10:38
1 | #3067
Alan

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


Тема "Спецификация оборудования" обсуждалась 100500 раз... Сам писал программы для этого
В "Поиск"! Например http://forum.dwg.ru/showthread.php?t...E2%E0%ED%E8%FF
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 07.10.2016, 10:42
#3068
fah


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


Цитата:
Сообщение от Alan Посмотреть сообщение
Тема "Спецификация оборудования" обсуждалась 100500 раз... Сам писал программы для этого
В "Поиск"! Например http://forum.dwg.ru/showthread.php?t...E2%E0%ED%E8%FF
основная задача автоматизировать спецификацию настолько, чтобы она готовая без забивания каких-либо данных переносилась в excel
fah вне форума  
 
Непрочитано 07.10.2016, 10:51
#3069
Сергей812


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


Цитата:
Сообщение от fah Посмотреть сообщение
основная задача автоматизировать спецификацию настолько, чтобы она готовая без забивания каких-либо данных переносилась в excel
и где и как будете хранить данные для полной "сборки" спецификации?) Тот вариант, что я предложил выше - все данные вводятся во вторую таблицу в том виде, как они будут присутствовать в спецификации. В первом столбце вводите имя блока. Но учитывая клиническую жадность вашего руководства (как же, переделывать то - на что было уже потрачено столько времени и денег), то в конечном итоге ваша программа превратиться в коллекцию костылей. Не обижайтесь, это обычный результат того - что пытаются сэкономить под лозунгом "а чего там делать".
Сергей812 вне форума  
 
Непрочитано 07.10.2016, 16:49
#3070
Alan

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


Цитата:
Сообщение от fah Посмотреть сообщение
чтобы она готовая без забивания каких-либо данных переносилась в excel
Для этого существует БКК (большая красная кнопка)
Мы писали программы для получения спецификации оборудования разными способами,
но остановились всё-таки на работе с Базой оборудования.
Пример, спецификации уже приводил. Еще раз прилагаю для fah (правда по ВК, но это не принципиально).
Вложения
Тип файла: pdf 1456-ВК.С.pdf (38.2 Кб, 32 просмотров)
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...

Последний раз редактировалось Alan, 07.10.2016 в 16:55.
Alan вне форума  
 
Непрочитано 07.10.2016, 17:18
#3071
Сергей812


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


Offtop:
Цитата:
Сообщение от Alan Посмотреть сообщение
Мы писали программы для получения спецификации оборудования разными способами,
но остановились всё-таки на работе с Базой оборудования.
Пример, спецификации уже приводил. Еще раз прилагаю для fah (правда по ВК, но это не принципиально).
сама постановка вопроса: один не программист пытается написать сбор информации о блоках с чертежа (хотя кода уже готового под это написано на лиспе...), второй видимо более опытный не программист пытается написать вывод в excel. Неизвестно кто пишет поддержку БД для заполнения спецификации полностью. И кто руководит этим праздником жизни в целом. Успехов им в этом интересном деле.
Сергей812 вне форума  
 
Непрочитано 11.10.2016, 11:30
#3072
trushev


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


Отлаживая LISP программу в 6130 строк столкнулся с непонятным явлением.
При загрузке программы выдается сообщение:
Команда: (load "dr")
; ошибка: no function definition: F_PLVP.
Функция в файле программы имеется, синтасические ошибки в ней отсутствуют.
В результате поиска обнаружил в 4230 строке абсолютно в другой функции лишнюю скобку.
Удивило, что автокад не распознал не соблюдение баланса скобок.
Кто-нибудь сталкивался с подобным явлением, в каких случаях оно возникает?
trushev вне форума  
 
Непрочитано 11.10.2016, 11:42
#3073
Кулик Алексей aka kpblc
Moderator

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


Я бы подумал о том, чтобы "разбить" такой здоровый код на несколько функций. И их загружать чохом (благо лиспы по поиску файлов с определенным расширением в каталоге и подчиненных каталогах уже есть). Дешево и сердито, отлаживать проще...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.10.2016, 12:01
#3074
trushev


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


Кулик Алексей aka kpblc, Код разбит на 17 вложенных функций. Удивляет, что автокад выдает ошибку не на лишнюю скобку (как на самом деле) а на неопределенную функцию.
Или корректная работа ограничена размером файла программы?
trushev вне форума  
 
Непрочитано 11.10.2016, 12:10
#3075
Сергей812


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


все функции в одном файле на 6000 с лишним строк? Даже в навороченных вижуал-студиях с такими объемами файлов трудно было бы работать без механизмов разбития на регионы, сворачивания по функциям и т.д.
Сергей812 вне форума  
 
Непрочитано 11.10.2016, 12:24
#3076
Кулик Алексей aka kpblc
Moderator

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


VLIDE отслеживает парность скобок и предоставляет чуть более удобные (по сравнению с обычным блокнотом) средства ввода функций и вызова справки по ним. Ну и еще по мелочи. ОСтальное - прерогатива программиста.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.10.2016, 12:27
1 | #3077
Alan

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


Цитата:
Сообщение от trushev Посмотреть сообщение
автокад выдает ошибку не на лишнюю скобку (как на самом деле) а на неопределенную функцию
Так оно и есть!
До функции дело не доходит. Проверяй скобки форматированием кусков или подпрограмм
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 11.10.2016, 12:50
#3078
trushev


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


Offtop: На форуме не раз звучала мысль, что написание программы на LISP'е подобно написанию картины.
Отладка, скорее поддержка между делом, своих программ от 6000 до 40000 строк, созданных еще до 2005 года особых затруднений у меня не вызывает.
Понимаю, я дремучий мастодонт, но новых технологий написания мне уже не освоить.
trushev вне форума  
 
Непрочитано 11.10.2016, 12:55
#3079
Кулик Алексей aka kpblc
Moderator

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


Offtop: Если бы у меня было время, я бы глянул на эти многотысячнострочные коды... Но увы
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.10.2016, 12:58
#3080
Сергей812


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


Кстати, бесплатный Notepage++ в плане интерфейса более продвинутый, чем встроенный в акад редактор лиспа) Он позволяет и сворачивать функции, и подсказки (причем распознает и переменные в коде и тоже их выводит в списке подсказок).
Сергей812 вне форума  
Ответ
Вернуться   Форум 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