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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Изменить лисп VVA SETKA

Изменить лисп VVA SETKA

Ответ
Поиск в этой теме
Непрочитано 25.12.2023, 09:40 #1
Изменить лисп VVA SETKA
Ingpro
 
Регистрация: 11.07.2022
Сообщений: 775

Всем привет!
Есть очень классный лисп VVA SETKA.
https://forum.dwg.ru/showthread.php?t=12569
Тема закрыта, поэтому вопрос в новой теме...
Пытаюсь закомментировать строки 8-10, чтобы сетка была без отступов по длине и ширине, как на виде 2:
Код:
[Выделить все]
 (defun C:Setka1 ( / Lx Ly Ox Oy ShagX ShagY pt LarmX LarmY nX nY OstX OstY)
  (setvar "CMDECHO" 0)
  (initget 7)
  (setq Lx (getdist "\nДлина участка: "))
  (initget 7)
  (setq Ly (getdist "\nШирина участка: "))
  (initget 7)
  ;(setq Ox (getdist "\nОтступ по длине участка: "))
 ; (initget 7)
 ; (setq Oy (getdist "\nОтступ по ширине участка: "))
  (setq ShagX (getdist "\nШаг арматуры по длине участка: "))
  (initget 7)
  (setq ShagY (getdist "\nШаг арматуры по ширине участка: "))
  (initget 1)
  (setq pt (getpoint "\nЛевый нижний угол"))
  (setq LarmX (- Lx Ox Ox))
  (setq LarmY (- Ly Oy Oy))
  (setq nX (fix (/ LarmX ShagX)))
  (setq nY (fix (/ LarmY ShagY)))
  (setq OstX (* 0.5 (- LarmX (* nX ShagX))))
  (setq OstY (* 0.5 (- LarmY (* nY ShagY))))
  (setq pt (mapcar '+ pt (list Ox Oy)))
  (command "_.LINE" "_none" (mapcar '+ pt (list 0 OstY)) "_none" (mapcar '+ pt (list Larmx OstY)) "")
  (command "_-ARRAY" (entlast) "" "_R" (1+ ny) 1 ShagY)
  (command "_.LINE" "_none" (mapcar '+ pt (list OstX 0)) "_none" (mapcar '+ pt (list OstX LarmY)) "")
  (command "_-ARRAY" (entlast) "" "_R" 1 (1+ nx) ShagX)
  (setvar "CMDECHO" 1)
  (princ)
  )
Но выдает ошибку:
ошибка: неверный тип аргумента: numberp: nil.
Как можно исправить! Спасибо...

Миниатюры
Нажмите на изображение для увеличения
Название: Image 1.png
Просмотров: 47
Размер:	5.9 Кб
ID:	260706  

Просмотров: 822
 
Непрочитано 25.12.2023, 10:06
#2
name02


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


Строки 8-10 замени на это:
Код:
[Выделить все]
 
  (setq Ox 0)
  (setq Oy 0)
name02 вне форума  
 
Непрочитано 25.12.2023, 10:43
#3
Сергей812


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


лисп язык с динамической типизацией типов данных. Поэтому если не присвоили в явном виде значение переменным - вместо ожидаемых начальных нулей (как в языках со строгой типизацией данных) будет просто ссылка в никуда nil. Соответственно, при дальнейшей попытке обратиться к подобной переменной интерпретатор лиспа честно говорит - что он не может получить данные из неоткуда.
Сергей812 вне форума  
 
Автор темы   Непрочитано 25.12.2023, 12:29
#4
Ingpro


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


Цитата:
Сообщение от name02 Посмотреть сообщение
Строки 8-10 замени на это:
name02, спасибо! Это работает!
Сергей812, спасибо за пояснение...
Ingpro вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Изменить лисп VVA SETKA



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить семейство, если оно не отображается в доступных (Изменить тип)? Putnik7.0 Revit 1 12.08.2021 11:39
Как из ObjectArx (.Net) вызвать функцию Лисп, передать в нее параметры и получить измененные параметры назад? nickname2019 Программирование 9 16.04.2020 06:16
Изменить значение в таблице через Лисп kurstep LISP 5 14.08.2014 18:07
Лисп для копирования данных нескольких мтекстов по принципу расположения. Red Nova LISP 14 18.06.2008 22:08
Как изменить n! лисп? Jоhnny LISP 25 11.01.2008 15:15