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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите найти ошибку в программе

Помогите найти ошибку в программе

Ответ
Поиск в этой теме
Непрочитано 21.08.2014, 11:30 #1
Помогите найти ошибку в программе
AndryGrey
 
Регистрация: 11.02.2014
Сообщений: 6

Здравствуйте! Я озадачился написать программу на lisp, которая по ввведенным с консоли значениям создавала слои. Вводимые значения: ndb - корень названия слоя; num - номер; nid - постфикс (окончание) в названии.
При введенных значениях ndb - "PDB"; num - 4; nid - "M" программа должна создать четыре слоя - "PDB-1M";"PDB-2M"; "PDB-3M" и "PDB-4M". Я написал програму, но она почему-то создает только один слой -"PDB-4M". Подскажите пожалуйста где у меня ошибка.

Код:
[Выделить все]
 (defun ID ()
(initget 7)
(setq ndb (getstring "\n Введите название слоя <PDB>: "))
(setq num (getint "\n Введите количество групп <1>: "))
(setq nid (getstring "\n Введите индекс <M>: "))
)

(defun MLAYER (ndb1 num1 nid1 / layername)
(setq layername(strcat ndb1 "-" (itoa num1) nid1))
   (entmake
        (list
          '(0 . "LAYER")
          '(100 . "AcDbSymbolTableRecord")
          '(100 . "AcDbLayerTableRecord")
          (cons 2 layername)
          '(70 . 0)
          (cons 62 num1)
          '(6 . "CONTINUOUS")
        )
    )
)

(defun c:MLAYER ()
 (setq i 0)
 (ID)   
   (while (< i num)
      (MLAYER ndb num nid)
      (setq i (+ i 1))
   )
)

Последний раз редактировалось Кулик Алексей aka kpblc, 21.08.2014 в 11:49.
Просмотров: 3780
 
Непрочитано 21.08.2014, 11:51
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,772


Советую поставить точку остановки в c:mlayer (например, после выполнения функции (id)) и пошагово пройтись, проверяя значения переменных.

----- добавлено через 42 сек. -----
Подсказка: почему (mlayer ndb num nid) а не (mlayer ndb i nid) ?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.08.2014, 12:35
#3
AndryGrey


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


Спасибо!
Я тут немного протупил!
AndryGrey вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите найти ошибку в программе

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
В плите перекрытия очень большие напряжения, помогите найти ошибку Olto SCAD 8 22.05.2014 22:09
Помогите найти ошибку Scad Toxel SCAD 12 14.04.2010 15:30