Hogyan használjuk a fórumon közzétett lisp-t, a tartalom platformot

Vladimir Azarko vagy VVA

Ön hasznosnak találta a kódot a Lisp-ben, és használni akarja. 3 lépésben van:

    a számítógépen lévő programkód mentése az alkalmazás indítását tartalmazó fájl letöltésével

Megjegyzés: Az AutoLISP programok csak a teljes AutoCAD verzióban futtathatók, az AutoCAD LT alatt nem működnek. (kivéve olyan kiegészítő alkalmazások letöltését, mint az LT Extender és hasonlók, amelyeket kifejezetten lisp és / vagy arx alkalmazások futtatására terveztek egy AutoCAD LT környezetben.)

Programkód mentése a számítógépen

A kurzor segítségével jelölje ki ezt a kódot, és a jobb egérgombbal kattintson rá, majd válassza a Másolás (vagy a Ctrl + C) lehetőséget.
Indítsa el a Jegyzettömböt és illessze be kódunkat a Szerkesztés menü >> Beillesztés (vagy Ctrl + V) segítségével:

(defun C: OFF2 (/ d obj ent adoc * hiba * undo lays Flag)

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

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

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

(ha (null * OFF2 *) (setq * OFF2 * (abs (getvar "OFFSETDIST")))))

(ha zerop * OFF2 *) (setq * OFF2 * 1)) (setq d (getvar "UNDOCTL"))

(kond ((= d0) (vl-cmdf "_.UNDO" "_All"))

((= d3) (vl-cmdf "_.UNDO" "_Control" "_All"))

(t nil)); _ vég

(princ "\ n Az elmozdulás mennyisége <")(princ *OFF2*)(princ ">: ")

(initget 6) (ha (null (setq d (getdist))) (setq d * OFF2 *))

(setq * OFF2 * d visszavonása 0 Flag t)

(initget "Undo Mégsem G J Kilépés Kilépés D _Undo Undo Visszavonás Kilépés Kilépés Kilépés Kilépés")

(setq obj (entsel (strcat "\ n Válassza ki az objektumot ["

(ha (nem (zerop undo)) "Mégse /" "")

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

(cond ((= obj "Undo") (ha (nem (zerop undo)) (prog

(vl-cmdf "_UNDO" "_B") (setq undo (1- undo))) (riasztás "Semmi többet törölni"))))

((= obj "Kilépés") (setq Flag nil))

((null obj) (ha (= (getvar "ERRNO") 52) (setq Flag nil) (prince "*** Mimo ***")))

(t (setq ent (vlax-ename-> vla-objektum (autó obj)))

(vla-get-lock (vla-get-réteg ent))): vlax-true (vla-get-réteg ent)

(riasztás "A blokkolt rétegben!"))

((vlax-method-applicable-pent "Offset") (vl-cmdf "_UNDO" "_M") (setq undo (1+ undo))

(vla-offset ent d) (vla-offset ent (-0 d)))

(t (riasztás "Nem lehet ilyen tárgyat létrehozni"))))))

(initget "Undo Mégsem G J Kilépés Kilépés D _Undo Undo Visszavonás Kilépés Kilépés Kilépés Kilépés"))

(princ "\ nVálassza ki az OFF2 parancssort"))


Miután feltöltötte a kódot egy notebookra, meg kell tennünk valamit:


Hogyan használjuk a fórumon közzétett lisp-t, a tartalom platformot

Töltse le a lisp fájlt

Ezután futtassa az AutoCAD programot, és válassza a Tools >> AutoLISP >> Load (Eszközök >> AutoLISP >> Load) parancsot, vagy írja be a _appload parancsot a parancssorból.
A következő párbeszédablakot kell látnunk:

Hogyan használjuk a fórumon közzétett lisp-t, a tartalom platformot

Használja a következő sorozatot a load2.lsp:

1. Keresse meg azt a mappát, ahová mentette a lisp fájlt.

2. Válassza ki a listából letölteni kívánt fájlt.

3. Kattintson a Letöltés gombra.
(Ha minden jól ment, akkor látnia kell a "off2.lsp sikeres letöltését" feliratát)

4. A parancs bezárásához kattintson a Bezárás gombra.

Parancs vagy funkció?


Először is el kell döntenie, hogy mi van: egy csapat vagy egy funkció?
Egy kis elmélet.
A szinte minden kód leírásában olyan vonal van, mint a


és utána valamit írt. Tehát itt van az, amit írt, és van egy függvény neve.
Ha az első karakter C:. akkor a függvény készen áll a parancssorból történő hívásra. Ha ez nem létezik, akkor a függvényt be kell hívni, zárójelbe zárva a nevét.
Például van egy funkció

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


A parancssorból közvetlenül hívható (feltéve, hogy betöltött) a parancssorból:

És cselekvéseket fognak végrehajtani <Что-то делаем 1>
De ez:

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


Most a lisp-nek hiba nélkül kell dolgoznia.

Mi ez (vl-load-com)?

A függvény betölti a nagyszámú funkciók bővítése AutoLisp, amely lehetővé teszi, hogy működjön együtt tárgyak, tulajdonságok, módszerek, rendezvények és az ActiveX. A jel nem szükséges letölteni a terjeszkedés AutoLisp jelenléte a szövegben a program funkcióit előtaggal kezdődnek vla- (pl vla- kap-activedocument) vlax- (pl vlax- kap-Acad-tárgy), VL-(pl VL-catch-all alkalmazni) és vlr- (például vlr-pers).
Mindenesetre soha nem fog fájni add hozzá (vl-load-com) a fájl elejére, hogy elkerülje az ilyen hibákat.

Az lsp fájlok könyvtárának megszervezése.

Mit tegyek, ha elég fájlom van? Minden alkalommal, amikor beír egy _apploadot egy alkalmazás betöltéséhez? A leghatékonyabb könyvtárának megszervezése. Először is, bízzunk abban, hogy minden fájljunk hozzáadódik egy mappához. Például: D: \ MyLisp. Írjuk le ezt a mappát az AutoCAD hozzáférési útvonalaiban. Ehhez válassza az Eszközök >> Opciók (Eszközök) parancsot, vagy írja be a _options parancsot a parancssorba. Menjen a Fájlok lapra, és bontsa ki a Támogatási fájl keresési útvonalát.
A következő párbeszédablakot kell látnunk:

Hogyan használjuk a fórumon közzétett lisp-t, a tartalom platformot

Használja a következő sorozatot, hogy regisztrálja a mappát a hozzáférési útvonalakon:

1. Kattintson a Hozzáadás gombra.

2. Kattintson a Tallózás gombra, és válassza ki a kívánt mappát (esetünkben a D: \ MyLisp)

3. A mappa elérési útja megjelenik a párbeszédpanelen.

4. A parancs befejezéséhez kattintson az OK gombra.

^ C ^ C (ha (null C:<команда>) (terhelés "<файл>„));<команда>;

^ C ^ C (ha (null C: OFF2) (terhelés "off2")); OFF2;

Ha a rajz megnyitásakor be kell tölteni az lsp fájlokat, meg kell adnia a szükséges fájlokat az automatikus feltöltési listához.
Indítsa el az AutoCAD programot, és válassza a Tools >> AutoLISP >> Load (Eszközök >> AutoLISP >> Load) parancsot, vagy írja be a _appload parancsot a parancssorból.
A megnyitott párbeszédpanelen kattintson az alkalmazások gombra a portfólió mellett

Hogyan használjuk a fórumon közzétett lisp-t, a tartalom platformot

A következő párbeszédpanelen kattintson a Hozzáadás gombra, és mutasson a kívánt fájlokra.

Hogyan használjuk a fórumon közzétett lisp-t, a tartalom platformot

Ezeknek szerepelnie kell az alkalmazások listáján.
Mostantól a felsorolt ​​fájlok a kép megnyitásakor lesznek betöltve.
Fontos megérteni, hogy (legalábbis a teljes verzió AutoCAD) alkalmazások betöltése, és helyezzük egy startup (indítás Suite), mint általában, elvégzett összes profil és a munkamenet AutoCAD'a.
Ezenkívül van még egy pont. Ha 2 vagy több fájl van, amelyek ugyanazokkal a nevekkel ellátott funkciókat írnak le, végre végrehajtja az utolsó betöltést. Mivel lehetetlen megjósolni az alkalmazások letöltésének sorrendjét, ezeket a helyzeteket el kell kerülni.