Translate to: |
|||||||
Обратная связь | Новости САПР | Программы | Документация | Полезные советы | Обзорные статьи | ||
Заказ и разработка | Каталог САПР | САПР-конференция | Библиотека ГОСТов | Наши соавторы | Коммерческое ПО |
Взято с сайта Надежды Толстобы -
http://aco.ifmo.ru/~nadinet/,
на ее сайте вы так же можете найти
лекции и задания
по программированию
на AutoLisp и работе в AutoCAD
и многое другое.
- Обязательно | - Допустимо |
- Желательно | - Нежелательно |
- Заперщено |
Использование глобальных данных и функций крайне нежелательно. | |
Файл библиотеки должен начинаться с комментированного заголовка, имеющего следующую структуру:
;; filename.lsp ;; ФИО ;; ;; Имя библиотеки ;; Краткое описание назначения библиотеки (prompt "/n filename.lsp /n") |
|
Для структурирования текста программы обязательно использовать табуляцию. Величина табуляции должна составлять 4 пробела. Следить за тем чтобы в качестве табуляции использовался именно символ табуляции, а не 4 пробельных символа. |
Комментарии должны составлять примерно 50% текста. Желательно комментировать каждый логический блок операторов (условное ветвление программ, циклические конструкции). | |
Обязательно комментировать объявление списков, функций и их аргументов, переменных. | |
Предпочтительно использование однострочного комментария со сдвигом влево на величину табуляции следующим образом:
;Обмен значениями между переменными x и y (setq temp x x y y temp ) |
|
Использование однострочного комментария заканчивающего строку допускается при объявлении переменных и других подобных случаях. Например:
(command "DIMDEC" "2"); кол-во знаков после запятой |
Имена идентификаторов должны состоять из не более 6 латинских символов. Превышение этого предела требует большее количество памяти. | |
Для имен идентификаторов обязательно использовать символы нижнего регистра. Для имен идентификаторов желательно использовать как можно более короткие англоязычные слова, например: count, row, area, top и т.п. Для составных имен использовать символ '_'. | |
Неявное преобразование типов переменных недопустимо. |
Автоинкремент и автодекремент использовать в арифметических выражениях запрещается (1+ <число>). |
В конструкции if желательно структурирование даже в случае однооператорного if | ||
однооператорный if:
(if (= a 4) (setq num_file "Table_1.txt") (setq num_file "Table_2.txt") ) |
многооператорный if:
(if (= num_file 1) (progn (setq f_name "Table_3.txt") ;создаем список (setq spisok (list a b c)) ) ;иначе (progn (setq f_name "Table_4.txt") ;создаем список (setq spisok (list b c a)) ) ) |
Для организации цикла с предусловием используется следующая конструкция
(while (<= a 10) (some-func a) (setq a (1+ a)) ) |
|
Для организации пошагового цикла с предусловием используется следующая конструкция:
(repeat 4 (setq a (+ a 10)) (setq b (+ b 10)) ) |
|
Для бессмысленных переменных вложенных циклов использовать имена в следующем порядке: i,j,k,l,m,n |
Когда необходимо предусмотреть большое количество разнообразных вариантов, то можно использовать конструкцию cond строго соблюдая пунктуацию, показанную ниже:
(cond ((= s "Y") 1) ((= s "y") 1) ((= s "N") 0) ((= s "n") 0) (t nil) ) |
Имена функций могут состоять не менее чем из трех символов, которые должны быть латинскими буквами, и при особой необходимости арабскими цифрами. | |
Следует избегать превышения предела в 6 символов для имен функций. Превышение этого предела требует большее количество памяти. | |
Имена функций должны составляться из одного, двух или трех как можно более коротких англоязычных слов, каждое из которых записывается с большой буквы, например: GetCount, SetTop и т.п. (Для AutoLISP не имеет значения регистр, но такая запись дает возможность ориентироваться в назначении функций.) | |
Для реализации функции используется следующая конструкция:
;-----------------------------------------------------------(80 символов) ; назначение ;-----------------------------------------------------------(80 символов) ; входные параметры ;-----------------------------(40 символов) ; выходные параметры ;-----------------------------(40 символов) (defun имя (параметры / локальные переменные) тело функции ) (prompt "имя, ") |
|
В списке локальных переменных должны быть перечислены все переменные, используемые в данной функции | |
Использовать в функциях аргументы по умолчанию нежелательно | |
Желательно использовать передачу данных списком. | |
Передача данных должна производится как результат последного действия | |
Когда есть выбор, то предпочтительнее использовать функций стандартной библиотеки функций AutoLISP |
Copyright © Сайт поддержки пользователей САПР