|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Переменные - да. Параметры вызова - до.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
Это ты просто не видел
![]() До знака "/" записываются аргументы функции - т.е. какие-то данные (числа, строки, объекты и т.п.) что будет использоваться для вычисления итогового значения функции Код:
|
|||
![]() |
|
||||
Регистрация: 15.08.2005
г. Норильск
Сообщений: 616
|
А те, которые нигде не объявляются - "глобальные"
Код:
После выполнения функции ты в любой момент сможешь узнать её значение, набрав в командной строке (princ a3) Вернее: а) В любой момент в текущем сеансе б) Пока её кто-нибудь не затрёт, забыв объявить в своей функции a3, как локальную переменную.
__________________
Счастливо, Алексей! |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Цитата:
А ещё: "Локальные переменные определяются в рамках заданной процедуры. Параметры, указанные в качестве аргументов в определении функции, также являются локальными переменными. Локальные переменные доступны только в рамках соответствующей функции. Как и глобальные переменные, локальные переменные также могут быть созданы с помощью конструкции setq". |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Цитата:
На всякий случай пара ссылок (сам пользовался постоянно, да и сейчас юзаю, если приходится в VLIDE возвращаться): https://autolisp.ru/2009/09/10/vlide-misc-01/ ; https://autolisp.ru/2009/09/12/vlide-misc-02/
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
потому что функция (vl-remove-if) удаляет из списка все элементы, для которых результат функции '(lambda (x)) будет ложным (равно nil)
В первом варианте в (lambda (x)) возвращается сам элемент если его длина более 500 и nil в противном случае Во втором варианте у тебя для всех элементов результатом будет элемент списка (не nil), поэтому удаления из исходного списка не происходит В последнем варианте у тебя при прохождении по каждому элементу списка выполняется действие (entdel x) - т.е. удаляется элемент Если надо сформировать набор из НЕполилиний, то ssget надо написать так: (ssget "_X" '((-4 . "<NOT")(0 . "LWPOLYLINE")(-4 . "NOT>"))) Подробнее про фильтры тут |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Хочу просто выбрать полилинию и вставить площадь в кв. м (с коэф. 0.000001) в указанную точку на чертеже, и чтобы текст был подчеркнутый (%%u), но не знаю, как это сделать правильно. Знаю, есть много лиспов для площадей с полями и вставкой в таблицу, но мне это не надо... Где и как в коде прописать коэф. 0.000001 и подчеркивание %%u, подскажите, плз, и точка вставки не работает... В ком. строке пишет:
Команда: AR-OBJ Укажите точку вставки текста:Ошибка приложения: В команду послан неверный тип Выберите объекты: Площадь = 23336443.43, Периметр = 19566.58 Код:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
1. У тебя нет получения площади.
2. txt не создается, поскольку там не задана строка 3. Возможный вариант кода (без проверок): Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Цитата:
Select polyline <Cancel> : Insertion point <Cancel> : ; ошибка: неверный тип аргумента: lentityp #<VLA-OBJECT IAcadLWPolyline 0000000045fac808> |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
В 46 строке убери преобразование в vla-объект, я его по запарке повторно воткнул
----- добавлено через ~1 мин. ----- У меня ощущение, что ты код не проверял и в VLIDE его не смотрел ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Цитата:
(cons 1 (strcat "%%u" (rtos (* (vla-get-area) 1e-6)) 2 14)) ; ошибка: слишком мало аргументов (cons 1 (strcat "%%u" (rtos (* (vlax-ename->vla-object ent) 1e-6)) 2 14)) ; ошибка: неверный тип аргумента: lentityp #<VLA-OBJECT IAcadLWPolyline 000000005856adc8> (cons 1 (strcat "%%u" (rtos (* (vla-get-area (vlax-ename)) 1e-6)) 2 14)) ; ошибка: no function definition: VLAX-ENAME |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |