|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Получается мы записываем в список tab имена всех элементов списка selset. А что возвращает функция (_dwgru-conv-pickset-to-list selset)? Полученный список tab?
__________________
Блог |
||||
|
||||
То есть смысл (_dwgru-conv-pickset-to-list selset) в данном коде это преобразование набора в список имен элементов в него входящих?
__________________
Блог |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
А разобраться по исходнику бывает очень трудно, особенно если текст лихо оптимизирован в "лисповском" стиле. Иногда даже приходится, в сложных случаях, "деоптимизировать" текст. Поначалу можно писать и "по-бейсиковски", то есть присваивать через setq значения переменным, а потом уже что-то делать. Типа Код:
Код:
Код:
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
У меня есть предложение ко всем, но в основном модераторам такого плана:
Разделить уроки на "академисеские часы" или даже на мастер-классы, а не валить все в одну кучу. Этот топик (удалив все лишнее) можно например назвать "Урок 1. Создание и модификация примитивов с помощью команд Автокада" Задание Алексея вынести в "Урок 2. Модификация и создание примитивов с помощью enget, entmake и т.д." ну и т.д. Потом урок 3 и т.д.
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
||||
VVA, Я буду только за. Мне бы уроков по больше и по понятнее
Но в этом случае правильно будет создать новый подраздел в разделе программирование, и назвать его типа "Уроки программирования" и там уже создать отдельные топики уроков по разной тематике. P.S. В свое время обнаружив этот сайт я был удивлен отсутствием на нем разделов с уроками, на сайтах по 3dmax таких уроков пруд пруди.
__________________
Блог Последний раз редактировалось Red Nova, 05.08.2008 в 22:00. |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853
|
(ssget)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Пока модераторы думают над мыслю VVA я продолжу разборку кода с поста #314 от kpblc. Приведу его снова
Код:
Как понять (entget item) Item в числе локальных переменных функции test нет, но есть среди локальных переменных функции _dwgru-conv-pickset-to-list. Насколько я знаю локальная переменная живет на срок действия ее функции. То есть на момент ее упоминания она уже не локальная переменная. Из хелпа Цитата:
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
ename это имя примитива возращаемого функциями entlast, entsel, ssname.
Если не понятно то нарисуй круг и введи (entget (entlast)). P.S. Гуру, не издевайтесь, скорей объясняйте DXF.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 06.08.2008 в 16:09. |
|||
|
||||
Дима_, Не не пойму. Ты на конкретном примере объясни, на посте #346, что делает (entget item)
__________________
Блог |
||||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853
|
Нет, и проблема не в (ssget)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Цитата:
Добавлено: Вот, накатал простенький лиспик для демонстрации вышенаписанного: Код:
|
|||
|
||||
На вопрос ты все же не ответил. Надо понять что (entget item) означает в данном коде.
__________________
Блог |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
команда (foreach item... )создает временную переменнту item, которая действует ТОЛЬКО внутри цикла foreach и принимает последовательно (циклично) все значения списка вернувшего (_dwgru-conv-pickset-to-list selset), далее в этом-же цикле есть команда (entget item) - возращает свойства примитива в виде списка состоящего из DXF кодов (ты уже использовал их в (ssget '((0 . "INSERT") (2 . "Колонна"))))), а команда (cdr(assoc xx возращает первое значение из списка с кодом хх - расшифровка кодов в DXF Reference
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,853
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Спасибо. Эту часть понял
Код:
Код:
Цитата:
__________________
Блог |
||||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Цитата:
Масштаб_блока_XxМасштаб_блока_Y (например "400x300") Она же и является ключом поиска в списке res для ф-ций member и assoc. В res ввиде ассоциативного списка будем подсчитывать размеры колонн Добустим у нас 2 колонны размером 300x400 и 1 400x400. ТОгда окончательное значение res='(("300x400" . 2)("400x400" . 1)) (mapcar 'car res)= выполняет ф-цию car ко всем элементам res. Т.е. (car '("300x400" . 2)) и (car '("400x400" . 1)). В итоге получается список из 1-х элементов res (ключей) res='(("300x400" . 2)("400x400" . 1)) (mapcar 'car res) = '("300x400" "400x400")
__________________
Как использовать код на Лиспе читаем здесь |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |