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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как правильно вызвать функцию?

Как правильно вызвать функцию?

Ответ
Поиск в этой теме
Непрочитано 09.07.2008, 15:28 #1
Как правильно вызвать функцию?
paradoxvaha
 
проектирование противооползневых сооружений
 
Yalta
Регистрация: 06.04.2007
Сообщений: 50

День добрый!
Кто может подсказать как правильно вызвать функцию, чтобы поместить в неё исходные данные, такой пример:
Код:
[Выделить все]
(defun obshaya_to4ka ()
(setq n 0
      k 0
      p1 0
      p2 0
      p3 0
      p4 0
      p5 0)
(setq k (length poliline))
(setq p3 (car liline))
(setq p4 (last liline))
 (repeat (- k 1)
   (setq p1 (nth n poliline))
   (setq p2 (nth (+ n 1) poliline))
   (setq p5 (inters p1 p2 p3 p4))
   (setq n (+ 1 n))
 );repeat
);defun
Вызов я пытаюсь организовать так:
Код:
[Выделить все]
(setq j (obshaya_to4ka
(setq poliline spis_toch_line_pov)
(setq liline (list (list 30000. 10000.) (list 10000. 40000.))) 
        );_ end of obshaya_to4ka
);_ end of setq
Ничего не выходит, исходные данные не воспринимаются функцией....
Вобщем идея такая - необходимо чтобы я, вызывая функцию "obshaya_to4ka", вводил бы в неё исходные данные, в моем случае - в переменную "poliline" надо каким то образом внести список двумерных точек, а в переменную "liline" просто список из двух точек... Дальше вроде бы должно работать... Кто что посоветует????
Просмотров: 3479
 
Непрочитано 09.07.2008, 15:34
#2
Кулик Алексей aka kpblc
Moderator

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


скобку забыл:
Код:
[Выделить все]
(setq j (obshaya_to4ka)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.07.2008, 15:39
#3
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Судя по
);_ end of obshaya_to4ka
он не забыл скобку.
Другое дело, что это вообще за конструкция?
Profan вне форума  
 
Непрочитано 09.07.2008, 15:41
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Ну тогда или так
Код:
[Выделить все]
(setq j (obshaya_to4ka))
(setq poliline spis_toch_line_pov)
(setq liline (list (list 30000. 10000.) (list 10000. 40000.)))
Или так

Код:
[Выделить все]
(setq j (obshaya_to4ka)
  poliline spis_toch_line_pov
    liline (list (list 30000. 10000.) (list 10000. 40000.))
);_ end of setq
Как говорится, найдите 2 отличия

*** Добавлено***
Ф-ция obshaya_to4ka не имеет аргументов
(defun obshaya_to4ka ()
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 09.07.2008, 15:49
#5
Кулик Алексей aka kpblc
Moderator

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


> Profan : Ну перепутал товарищ скобки, ну с кем не бывает...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 09.07.2008, 15:50
#6
_Eugene


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


Не совсем понял, в чем проблема. Если нужна функция с аргументами, тогда:
(defun obshaya_to4ka ( poliline liline / )
...
)
ну и вызов функции:
(setq j (obshaya_to4ka spis_toch_line_pov
(list (list 30000. 10000.) (list 10000. 40000.)))
),
если я что-то в чем-то понимаю...

Последний раз редактировалось _Eugene, 09.07.2008 в 16:03.
_Eugene вне форума  
 
Непрочитано 09.07.2008, 16:03
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


_Eugene, Все правильно. Судя по тому, что в ф-ции учавствуют переменные poliline и liline, то или как в #6 (исправив pline на poliline) либо так (аналогично #4 только изменен порядок присвоения переменных)
Код:
[Выделить все]
(setq poliline spis_toch_line_pov)
(setq liline (list (list 30000. 10000.) (list 10000. 40000.)))
(setq j (obshaya_to4ka))
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 09.07.2008, 16:25
#8
paradoxvaha

проектирование противооползневых сооружений
 
Регистрация: 06.04.2007
Yalta
Сообщений: 50
<phrase 1=


Всем огромное спасибо, общими усилиями всё заработало как надо!!!
paradoxvaha вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как правильно вызвать функцию?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно чменить цвет шрифта? -=Сергей=- AutoCAD 14 09.11.2007 21:37
Как правильно организовать работу над проектом Kotsar AutoCAD 13 12.07.2007 18:22
Как мне программно вызвать диалоговое окно "Сохранить к Galych Программирование 7 18.12.2006 20:32
Четире рисунка на одном формате - как правильно? Doommed AutoCAD 12 17.02.2006 11:44