там понимать особенно нечего - функциональный язык. Вызовы функций записываются в т.н. "кембриджской записи". В AutoCAD всё чуточку упростили даже по сравнению с "настоящим LISP-ом" - до сих пор не понимаю кайфа в использовании (( COND A EQ B ) ( SET A 2 ) ( SET B A )) .
и даже когда точно представляешь семантику - ну очень трудно писать.
Мы LISP учили на третьем курсе - там отдельный семестр по "языкам программирования вообще" был. Но по-настоящему я на SNOBOL 4 кучу всякой мути потом делал.
P.S. А в LISP для AutoCAD есть LAMBDA ?
Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
Строить Асгардию побуждает тьма, посетившая людские души
ну што за языки на свет божий повытаскивали!
Я думала что много их знаю, а теперь у меня комплекс неполноценности разовьется![]()
а-а-а-а-а... какая я ограниченная с моими фортранами, анголами, коболами, пл1, с с разными плюсами, борландами дельфи и дотами нетами...
Майки, не поверишь, но я когда-то на фортране пыталась что-то вроде КАДа изобрестиЯ и ещё человек 100 в одном научно-исследовательском институте
![]()
Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
Строить Асгардию побуждает тьма, посетившая людские души
Lambda есть, но я до неё еще не дошел.
Ну, например, вот такая вот писанина мною уже читается легко и пишется не трудно:
(defun c:slot (/ p d L R)
(setq p (Getpoint "Select point: "))
(setq d (Getreal "Identify Slot Diameter: "))
(setq L (Getreal "Identify Slot Lengths: "))
(setq R (Getreal "Specify Rotation Angle: "))
(Draw p d L R)
)
(prompt "slot, ")
(defun Draw (p d L R / p1 p2 p3 p4 p5 p6 x y det)
(setq
x (nth 0 p)
y (nth 1 p)
p1 (list (- x (/ (- L d) 2.0)) (+ y (/ d 2.0)))
p2 (list (+ x (/ (- L d) 2.0)) (+ y (/ d 2.0)))
p3 (list (+ x (/ (- L d) 2.0)) (- y (/ d 2.0)))
p4 (list (- x (/ (- L d) 2.0)) (- y (/ d 2.0)))
p5 (list (- x (/ (- L d) 2.0)) y)
p6 (list (+ x (/ (- L d) 2.0)) y)
)
(command "_osnap" "_none")
(command "_pline" p1 p2 "_arc" "_ce" p6 "_a"
-180 "_l" p3 p4 "_arc" "_ce" p5 "_a"
-180 "_cl" ""
)
(command "_rotate" "_last" "" p1 R "")
(command "_osnap" "int,cen,end,ins")
(prompt "Draw ")
)
рисует slot (не знаю, как это по-русски) любой длины, любого диаметра, под любым углом.
Кот Лукоморский и Западноамериканский.
There are currently 1 users browsing this thread. (0 members and 1 guests)
|
|
Terms of Service | Privacy Policy |
|