Main Menu

lisp

Creat de monge, Feb 25, 2008, 09:56 PM

« precedentul - următorul »

monge

As vrea sa aflu daca se poate face animatie cu AutoCAD si AutoLISP si daca da, cam ce ar trebui sa caut. Va multumesc!

catalinutz

Da se poate, mai rudimentara dar se poate. Cat despre AutoLISP prima carte despre Lispuri te va invata cum  :D

catalinutz

monge uite poate o sa te ajute asta
este o rutina de lisp mai rudimentara dar este un inceput.

(DEFUN C:ANIM2()
  (SETQ FI 0)
  (WHILE (<= FI (* 2.0 PI))
    (COMMAND"CIRCLE"
       (LIST (* 10.0 (COS FI)) (* 10.0 (SIN FI)))
             (+ 10.0 (* 8.0 (SIN FI)))
    )
    (SETQ FI (+ FI (/ PI 180.0)))
    (COMMAND"ERASE" "L" "";)
  )
;  (COMMAND"COLOR" 5)
;  (COMMAND"CIRCLE" "" "";)
;       (LIST (* 10.0 (COS FI)) (* 10.0 (SIN FI)))
;             (+ 10.0 (* 8.0 (SIN FI)))
)


boon asa, dupa ce ai scris rutina asta dai in commandline appload ANIM2 si iata o animatie rudimentara dar daca vrei sa faci ceva mai complex trebuie sa iti bati capul cu lispul  :nod:

dtoni

pentru cei care cunosc autolisp
 de ce  unele lispuri nu imi ruleaza pe versiunile mai noi de autocad?
si cum se poate rezolva acesta problema

Kaleh

Se poate intimpla ca un lisp sa dea de setari care nu-i plac (ortho = on, units = grad, etc.). Multe sunt facute pe standard, cu orientare East, counter clockwise, etc. Daca tu ai setat X pe nord, nu va lucra...

Kaleh

Poti sa deschizi AutoLisp, sa incarci lispul respectiv, si sa il executi pe pasi, sa vezi unde se opreste (si de ce...)

set4

s-ar putea ca in textul sursa sa fie introduse comenzi de AutoCad

Ex (command "line" .....) iar acestea sa difere ca parametri de la o versiune la alta

dtoni

multumesc pentru raspunsuri

John Doe

Sau, daca nu e criptat, deschide lispul si vezi ce variabile de sistem iti modifica. Daca nu stii ce e vreuna, da-i comanda normal si vezi ce scrie la cmdline.
Consulta si helpul, gasesti multe pe-acolo. Sau, cel putin, asa fac eu daca nu stiu ceva.

Spor !

John Doe

set4:
De acord, parametrii sau tipul de datele de care are are nevoie un LISP pot sa difere mult, functie de versiunea AutoCAD si versiunea de interpretor LISP pe care o are implementata. S-ar putea lucra direct cu VBA, VBX, ADS, etc. da' asta presupune niste cunostinte de limbaj C. Si nu e prea simplu.

Mi s-a intâmplat ca un LISP sa aiba inclusa o comanda obisnuita, gen (command "line .....";), iar o versiune de LISP sa aiba nevoie de de punctul de start si cel de final sub forma de liste, alta sub forma de sir cu space între X si Y, iar la alta versiune a mers cam asa:
(command "line" (command pct1) (command pct2))

In orice caz, multe poti face cu LISP-ul si limbajul DCL (ala e simplu).
Parerea mea.

Modificat de John Doe (11-10-2008 10:37:11)

vespasy

ma puteti ajuta si pe mine sa pot invata sa fac un LISP?
unde pot gasi ceva sa pot invata?

John Doe

#11
Te-as ajuta, dar nu e prea simplu la distanta.
Eu am invatat cel mai mult din cartea "AutoLISP - manual de programare" , de prof. univ. dr. Constantin Stancescu, editura FAST 2000, Bucuresti 1996. Nu stiu daca o mai poti gasi. Dar numai cine cauta gaseste.

Incearca la http://www.noitopografii.ro/

John Doe

#12
Intrebasem mai demult daca nu are cineva o carte sau manual despre limbajul DCL (Dialog Control Language) pentru LISP. Nu avea nimeni, dar acum am gasit eu - in lb. engleza. Daca are cineva nevoie sa-mi spuna.
Pentru cine nu e la curent - la ce se foloseste DCL:


533/337px 45.7KB

DAN.ARBA

Ai dreptate,John Doe, e simplu DCL-ul ,insa dialogul dintre DCL si autolisp e complicat    :dinti:

Modificat de DAN.ARBA (31-10-2010 15:06:10)

John Doe

Nu e chiar asa de greu...
Prima data ii spui ce vrei: ia incarca bre caseta aia... (load_dialog)
Pe urma, zici asa: vezi ca daca o sa apas aici in caseta vreau sa faci asa, daca apas aici vreau asa (action_tile)
Si acuma porneste frate caseta, eu apas pe ce am nevoie si tu fa cum ti-am zis... (start_dialog).

E greu? nu mi se pare. Chestia e ca calculatorul face nu ce vrei tu, ci ceea ce-i spui sa faca, si asta al dracului de exact... cel putin eu asa asa am vazut la al meu.