> 1 <

Автор Сообщение

AndryGrey

Members


Статус

1 сообщений

Где: Russia
Род занятий:
Возраст:

#7412   2014-08-21 13:39 GMT+3 часа(ов)      
Здравствуйте! Я озадачился написать программу на 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))
)
)

gomer

Members


Статус

23 сообщений

Где: Ukraine
Род занятий:
Возраст:

#7413   2014-08-31 02:28 GMT+3 часа(ов)      
ошибка здесь
(MLAYER ndb num nid)

num ведь не изменяется, она задана пользователем. изменяется i
Следовательно правильно было бы написать
(MLAYER ndb i nid)
> 1 <


Онлайн :

0 пользователь(ей), 9 гость(ей) :




Реклама на сайте: