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

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

Парметрическая поверхнось через visualLisp

Ответ
Поиск в этой теме
Непрочитано 18.01.2014, 00:30 #1
Парметрическая поверхнось через visualLisp
FIAS
 
Регистрация: 19.10.2012
Сообщений: 3

Есть программа для построения параметрических поверхностей, при вписывании параметрических формул выдает ошибку излишние cdrs в точечной паре на входе


сама прога

(defun fp1 (u v / X Y Z)

(setq
x (- (* (+ a (* b (sin(* n u)))) (cos u)) (* v (sin u)))
y (- (* (+ a (* b (sin(* n u)))) (sin u)) (* v (cos u)))
z (* b (cos(* n u)))
)
(list x y z);_òî÷êà ïîâåðõíîñòè
)

;;;========Ñîçäàòü ñïèñîê âåðøèí ñåòè
(defun list_mesh (umax umin vmax vmin nu nv kz / I J K MESH MESH1 P STEPU STEPV U V XMAX XMIN ZMAX ZMIN |)
(setq stepu (/ (- umax umin) (1- nu)) ;_øàã ïî ïàðàìåòðó u
stepv (/ (- vmax vmin) (1- nv)) ;_øàã ïî ïàðàìåòðó v
i 0 ;_ñ÷åò÷èê ïî u
)
(repeat nu ;_öèêë ïî u - ïî îáðàçóþùåé
(setq j 0) ;_ñ÷åò÷èê ïî v
(repeat nv ;_öèêë ïî v ïî íàïðàâëÿþùåé
(setq u (+ umin (* i stepu))
v (+ vmin (* j stepv))
mesh (cons (fp1 u v) mesh) ;_âêëþ÷èòü âåðøèíó â ñïèñîê
j (1+ j)
)
)
(setq i (1+ i))
)

| ;
;;;Ìàñøòàáèðîâàíèå ñåòè ïî z-êîîðäèíàòå
(if kz
(setq
mesh1 (vl-sort mesh (function (lambda (e1 e2) (> (caddr e1) (caddr e2))))) ;_óïîðÿäî÷èòü ïî óáûâàíèþ z-êîîðäèíàòû
zmax (caddr (car mesh1))
zmin (caddr (last mesh1))
mesh1 (vl-sort mesh (function (lambda (e1 e2) (> (car e1) (car e2))))) ;_óïîðÿäî÷èòü ïî óáûâàíèþ x-êîîðäèíàòû
xmax (car (car mesh1))
xmin (car (last mesh1))

k (/ (* kz (- xmax xmin)) (- zmax zmin))
mesh (mapcar '(lambda (p) (list (car p) (cadr p) (* k (caddr p)))) mesh)
)
)
| ;
(setq mesh (reverse mesh))
)




;;;==== Ââîä äàííûõ
(defun getdata ()
(setq
;;;Ïàðàìåòðû îáðàçóþùåé
umin 0.
umax (* pi 2).
nu 50 ;_äèñêðåòíîñòü ñåòè âäîëü ïàðàìåòðà u ;10;_10
;;;Ïàðàìåòðû íàïðàâëÿþùåé
vmin -3.;
vmax 3. ;_
nv 50. ;_äèñêðåòíîñòü ñåòè âäîëü ïàðàìåòðà v
a 1. ;_ïîñòîÿííûé ãåîìåòðè÷åñêèé ïàðàìåòð
kz 1.;nil;__0.7 ;_2 ;_;_êîýôô. ìàññøòàáèðîâàíèÿ ïî z-êîîðäèíàòå
n 1.
b 2.
)
)

;;;Ìîäóëü ãåíåðèðîâàíèÿ ïîâåðõíîñòè, çàäàííîé íà ïðÿìîóãîëüíîé ñåòêå nx*ny.
;;;Ïðîãðàììà íà îñíîâå 3DMESH.
;;;Ñåòü ïðåäâàðèòåëüíî çàíåñåíà â ñïèñîê mesh

(defun mesh_1 (mesh ;ñïèñîê âåðøèí ñåòè
nu ;êîë-âî âåðøèí ñåòè âäîëü îñè õ (âäîëü íàïðàâëÿþùåé)
nv ;êîë-âî âåðøèí ñåòè âäîëü îñè y (âäîëü îáðàçóþùåé)
)
(command "_ucs" "")
(command "_3dmesh" nu nv)
(FOREACH p mesh (command p))
)


;;;======Ãëàâíàÿ ôóíêöèÿ
(defun c:fp (/ xmax xmin ymax ymin n kz)
(command "_undo" "_m") ;_ïîñòàâèòü ìåòêó
(setvar "cmdecho" 0) ;_îòêëþ÷èòü ýõî-âûâîä
(setvar "osmode" 0) ;_îòêëþ÷èòü îáúåêòíóþ ïðèâÿçêó
(getdata) ;_ââîä äàííûõ
(setq mesh (list_mesh umax umin vmax vmin nu nv kz)) ;_ñîñòàâèòü ñïèñîê ñåòè
(mesh_1 mesh nu nv) ;_ñãåíåðèðîâàòü ïîëèãîíàëüíóþ ñåòü
(command "_MESHSMOOTH" (entlast) "");_ïðåîáðàçîâàòü â îáúåêò-ñåòü
;;; (mesh_loft mesh nu nv)
(princ)
)
(defun c:mu ( ) (command "_undo" "_b"));_îòìåíà ïîñòðîåíèé äî ìåòêè
(princ "\n Äëÿ çàïóñêà ââåäè fp èëè (c:fp) ");_Ñîîáùåíèå ïðè çàãðóçêå
;|«Visual LISP© Format Options»
(120 2 40 2 nil "end of " 100 9 0 0 0 T T nil T)
;*** ÍÅ äîáàâëÿéòå òåêñò ïîä êîììåíòàðèÿìè! ***|;



кто скажет как устранить данную ошибку
Просмотров: 1293
 
Непрочитано 18.01.2014, 00:38
#2
Кулик Алексей aka kpblc
Moderator

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


Для начала: посмотри, что у тебя с кодировкой. И не забудь про тэги [code][/code]
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 18.01.2014, 00:45
#3
FIAS


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


вот полностью прога
Вложения
Тип файла: lsp 1234.LSP (3.7 Кб, 31 просмотров)
FIAS вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Парметрическая поверхнось через visualLisp



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ширина эвакуационных выходов Slim Прочее. Архитектура и строительство 231 06.10.2020 12:48
Как настроить выход в интернет с комуникатора через блютуз и ПК KonGo Разное 15 01.04.2010 18:46
Эвакуация через автостоянку triruki Архитектура 12 14.07.2008 09:50