Cum se utilizează lisp, publicat pe forum, platforma de conținut

Vladimir Azarko aka VVA

Ați găsit util pentru dvs. codul de pe Lisp și doriți să-l utilizați. Există 3 pași:

    salvând codul programului de pe calculatorul descărcat fișierul care lansează aplicația

Notă: programele AutoLISP pot fi executate numai pe versiunea completă AutoCAD, dar nu funcționează în cadrul programului AutoCAD LT. (cu excepția cazurilor de descărcare a aplicațiilor suplimentare, cum ar fi LT Extender și altele asemenea, care sunt concepute special pentru a rula aplicații lisp și / sau arx într-un mediu AutoCAD LT.)







Salvează codul de program pe calculatorul tău

Utilizați cursorul pentru a selecta acest cod și a-l copia în clipboard făcând clic dreapta și selectând Copy (sau Ctrl + C).
Porniți Notepadul și inserați codul folosind meniul Editați >> Lipire (sau Ctrl + V):

(Defun C: OFF2 (/ d obj ad adoc * eroare * anulează Flag)

(defun * eroare * (msg) (vla-EndUndoMark adoc))

(vl-load-com) (setq adoc (vla-get-activedocument (vlax-get-acad-object))

(vla-get-layers-adoc)) (vla-StartUndoMark adoc) (setvar "CMDECHO" 0)

(dacă null * OFF2 *) (setq * OFF2 * (abs (getvar "OFFSETDIST")))))

(dacă (zerop * OFF2 *) (setq * OFF2 * 1)) (setq d (getvar "UNDOCTL"))

(cond ((= d 0) (vl-cmdf "_.UNDO" "_All"))

((= D 3) (vl-cmdf "_.UNDO" "_Control" "_ALL"))

(t nil)); - sfârșitul cond

(prințul "\ n Cantitatea de deplasare <")(princ *OFF2*)(princ ">: ")

(Initget 6) (în cazul în care (nul (setq d (getdist))) (setq d * Dezactivat2 *))

(setq * OFF2 * d anula 0 Marcaj t)

(initget "Renunțare Anulare G J Exit Exit D _Undo Renunțare Renunțare Exit Exit Exit Exit")

(setq obj (entsel (strcat "\ n Selectați obiectul [

(dacă (nu (zerop undo)) "Anulare /" ")

„Randament] <выход>: ")))

(cond ((= obj "Undo") (dacă (nu (zerop undo)) (progn

(val-cmdf "_UNDO" "_B")) (setq undo (1- undo))) (alerta "Nimic mai mult pentru anulare"))))

((= obj "Ieșire") (setq Flag nil))

((Null obj) (if (= (getvar "errno") 52) (setq Flag nil) (princ "*** *** Past")))

(t (setq ent (vlax-ename-> vla-obiect (car obj)))

(cond ((= = (vla-get-lock (vla-item-lay)): vlax-true)

(alertă "Pe stratul blocat!"))

((Vlax metoda aplicabilă p ent „Offset) (vl-cmdf "_UNDO" "_M") (setq undo (1+ undo))

(variație în valută) (depreciere (-0 d)))

(t (alertă "Nu se poate crea un obiect ca acesta"))))))

(initget "Undo Cancel G J Ieșire Ieșire D _Undo Renunțare Renunțare Ieșire Ieșire Ieșire Ieșire"))

(princ "\ nSelectați linia de comandă OFF2"))


După ce ați pus codul într-un notebook, ar trebui să avem ceva de genul:


Cum se utilizează lisp, publicat pe forum, platforma de conținut

Descărcați fișierul lisp

Apoi, lansați AutoCAD și selectați Instrumente >> Avtolisp >> Descarca (Instrumente >> AutoLISP >> Load) sau de tip în linia de comandă _appload.
Ar trebui să vedem caseta de dialog ca mai jos:

Cum se utilizează lisp, publicat pe forum, platforma de conținut






Utilizați următoarea secvență pentru a încărca off2.lsp:

1. Navigați la dosarul în care ați salvat fișierul lisp.

2. Selectați fișierul pe care doriți să îl descărcați din listă.

3. Faceți clic pe butonul Descărcare.
(Dacă totul a mers bine, ar trebui să vedeți inscripția "off2.lsp a fost descărcat cu succes")

4. Faceți clic pe Închidere pentru a termina comanda.

Comandă sau funcție?


În primul rând, trebuie să decideți ce avem: o echipă sau o funcție?
Un pic de teorie.
În descrierea aproape a oricărui cod există o astfel de linie ca


și după aceea este scris ceva acolo. Deci, aici este ceea ce este scris acolo și există un nume de funcție.
Dacă primele caractere sunt C:. atunci funcția este gata să fie apelată din linia de comandă. Dacă aceasta nu este prezentă, atunci trebuie apelată funcția, cuprind numele acesteia în paranteze.
De exemplu, există o funcție

(defun c: test ()<Что-то делаем 1>)


Poate fi apelat direct (cu condiția să fie încărcat) din linia de comandă:

Și acțiunile vor fi efectuate <Что-то делаем 1>
Dar aceasta:

(defun test ()<Чего-то делаем 2>)


Acum lisp dvs. ar trebui să funcționeze fără erori.

Ce este aceasta (vl-load-com)?

Această funcție încarcă o mulțime de funcții incluse în extensia AutoLisp, care permite lucrul cu obiecte, proprietăți, metode și evenimente ale ActiveX. Un semn de necesitatea de a descărca de expansiune AutoLISP este prezența în textul funcțiilor de program începe cu VLA prefix (de exemplu, VLA get-activedocument), vlax- (de exemplu, vlax- get-acad-obiect), VL- (de exemplu, VL- catch-toate- aplicați) și vlr- (de exemplu, vlr-pers).
În orice caz, nu va face niciodată rău să adăugați (vl-load-com) la începutul fișierului pentru a evita astfel de erori.

Organizarea bibliotecii de dosare lsp.

Ce ar trebui să fac dacă am suficiente fișiere? De fiecare dată când tastați _appload pentru a încărca o aplicație? Cea mai eficientă este organizarea bibliotecii sale. Mai întâi, să acceptăm că toate fișierele noastre vor fi adăugate într-un singur dosar. De exemplu, D: \ MyLisp. Să scriem acest dosar în căile de acces AutoCAD. Pentru aceasta, selectați Instrumente >> Opțiuni (Instrumente) sau tastați opțiuni la linia de comandă. Accesați fila Fișiere și extindeți lista Piață de căutare pentru fișierele de suport.
Ar trebui să vedem o casetă de dialog ca mai jos:

Cum se utilizează lisp, publicat pe forum, platforma de conținut

Utilizați următoarea secvență pentru a înregistra dosarul în căile de acces:

1. Faceți clic pe butonul Adăugați.

2. Faceți clic pe butonul Browse și selectați folderul destinație (în cazul nostru, D: \ MyLisp)

3. Calea către dosar trebuie să apară în caseta de dialog.

4. Faceți clic pe OK pentru a termina comanda.

^ C ^ C (dacă (null C:<команда>) (sarcina "<файл>„));<команда>;

^ C ^ C (dacă (null C: OFF2) (sarcină "off2"));

Dacă trebuie să încărcați fișierele lsp atunci când deschideți desenul, trebuie să adăugați fișierele necesare în lista de autoloader.
Porniți AutoCAD și selectați Instrumente >> AutoLISP >> Încărcați (Instrumente >> AutoLISP >> Încărcați) sau tastați _appload din linia de comandă.
În caseta de dialog deschisă, faceți clic pe butonul Aplicații de lângă imaginea din portofoliu

Cum se utilizează lisp, publicat pe forum, platforma de conținut

În următoarea casetă de dialog, faceți clic pe butonul Adăugați și indicați fișierele necesare.

Cum se utilizează lisp, publicat pe forum, platforma de conținut

Ele ar trebui să apară în lista de aplicații.
Acum, fișierele listate vor fi încărcate de fiecare dată când deschideți fotografia.
Este important să înțelegem că (cel puțin în versiunea completă a AutoCAD) încărcare aplicare, într-un loc de pornire (Startup Suite), ca regulă, realizată în toate profilurile și sesiune AutoCAD'a.
În plus, există încă un punct. Dacă există 2 sau mai multe fișiere care descriu funcții cu aceleași nume, va fi executat cel care a încărcat ultima. Deoarece este imposibil să se prevadă secvența în care vor fi descărcate aplicațiile, astfel de situații ar trebui evitate.







Trimiteți-le prietenilor: