| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Да нет, я именно предлагал заменить рисование 3d боксов, команда box, вставкой блоков. Правда для операций вычитание... потребуется их членить.
Потому что никто не запрещает её использовать так) последовательно назначать ей следующий примитив после отрисовки второго ящика после последнего до операции отрисовки второго ящика до окончания примитивов базы. Как-то так, но сам вопрос не очень понятен. |
||||
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 168
|
Цитата:
Вот и получается, что имя именно должно быть неизменным, а почему, мне не понятно. Хочу понять логику, когда переменная может переопределяться в процессе работы программы, а когда нет. |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
"Имя" = "наименование переменной"?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Цитата:
|
||||
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 168
|
Прошу прощения за задержку, - умчался на работу.
Да. Цитата:
Собственно в этом и был вопрос, почему наименование переменной должно оставаться тем же? |
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
Ну хотя бы потому, что внутрь одной переменной можно засовывать разные данные.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,009
|
если переменная больше не нужна - ее можно использовать повторно. Поскольку в лиспе динамическая типизация - то переменной можно присвоить любое другое значение.
И строка Код:
Код:
|
|||
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 168
|
Цитата:
Для меня непонятным остается, почему, в данном примере, нельзя переименовать (создать новую) "синюю" переменную? Это я думаю, что она новая, а получается, что они все связаны. Как? |
|||
|
||||
(setq entity(1) (entlast)) ; записываем в переменную entity последний примитив базы
; к базе добавляются примитивы... (while (setq entity(2) (entnext entity(1))...) ; записываем в переменную entity примитив следующий за примитивом, который записан в переменную entity (setq box_lower_sset (ssadd entity(2) box_lower_sset)) ; добавляем в набор примитив, записанный в переменную entity entity(1) и entity(2) связаны непосредственно. в первой итерации цикла while в entity(2) записывается примитив, который следует за примитивом, который записан в переменную entity(1) и который затем добавляется в набор box_lower_sset. итерации продолжаются до окончания примитивов в базе. то есть мы используем переменную entity для записи в неё каждого следующего примитива после маркировки последнего примитива и до добавления объектов второго ящика. всё логично и лаконично. но, если ну прямо, ну вот хочется поменять имя переменной в цикле while (не могу понять зачем), то придётся вводить новую переменную. хотя я опять сильно сомневаюсь в этом ли суть вопроса?) или какая суть вопроса?) Код:
|
||||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,009
|
имя переменной - это псевдоним области (ячейки) оперативной памяти чисто для программиста. Когда на начальном этапе писали на машинном языке (из-за ограниченных ресурсов первых ЭВМ), то там псевдонимов не было - работали напрямую с ячейками памяти. Потом по мере увеличения объемов памяти и производительности ЭВМ стали появляется промежуточные языки высокого уровня, где программист писал уже на более понятном языке языковые конструкции - а в процессе компиляции/интерпретации эти языковые конструкции превращались в машинный исполняемый код.
Насчет связанности - как уже ранее говорили, у каждой переменной есть своя область видимости: где ее могут читать и модифицировать. Есть свои нюансы: аргументы - по умолчанию обычно копируются значения и внутри функции работают уже с копиями входных значений. Локальные переменные функции - на входе в функцию либо при первом использовании под них выделяется память, при выходе из функции - память освобождается (как и из под скопированных аргументов). И есть глобальные переменные - под них выделена память, и они висят в отдельной области памяти, пока их в явном виде не удалят. И чтобы не было сюрпризов, надо писать код как говорил выше Алексей - функция принимает аргументы (копирует их во внутренние временные переменные), обрабатывает с использованием локальных переменных и возвращает результат. А глобальные переменные использовать только если уж совсем без них не обойтись, при этом желательно им давать смысловые длинные имена - чтобы случайно не было конфликтов из-за совпадения с локальными переменными. |
|||
|
||||
Регистрация: 24.01.2008
Подольск
Сообщений: 168
|
koMon, Сергей812 Спасибо, разобрался.
Цитата:
Вот в таком виде у меня в голове все устаканилось koMon, спасибо за наглядный пример. Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787
|
(vla-put-displaylocked <vla-указатель> :vlax-true)
P.S. Здесь обучение лиспу, если что.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
|
||||
|
||||
инженер-гидротехник Регистрация: 08.02.2015
Москва
Сообщений: 40
|
Добрый день. Сейчас осваиваю программирование на LISP
Хочу сделать блок при помощи activeX Блок простой. Две отрезка под углом с сопряжением. Знаю как создать отрезки (при помjщи метода addline), но вот метода для создания сопряжения не нашел. Какой метод использовать что бы создать сопряжение между отрезками при помощи activeX? |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |