Példa a lisp, autocad

Ebben a leckében megnézzük, miként kezelhetünk párbeszédablakot a LISP programból.

Példaként az előző leckében létrehozott párbeszédpanelt fogjuk használni: "Dialog".

És azonnal kezdje el a kódot, amely kezeli a párbeszédpanelt.

Példa a lisp, autocad

Ábra. 1. "A programkód a párbeszédpanel kezeléséhez."

A párbeszédpanel kezelése a LISP programból több lépcsőben történik:

A párbeszédpanel letöltése

Először le kell töltenie a kívánt párbeszédablakot tartalmazó DCL fájlt.

Ha betöltötte a párbeszédpanelt, ez a funkció visszaadja a letöltött DCL fájl sorszámát ebben a munkamenetben az AutoCAD rendszerrel.

A assignq operátor setq használatával emlékezzen erre a számra a dcl_id változónál.

Ha a párbeszédpanel nem töltődik be, a függvény negatív egész számot ad vissza.

Ha az argumentumban szereplő fájlnév a teljes elérési útvonal nélkül van megadva, az AutoCAD megpróbálja megtalálni a fájlt a támogató mappákban, ahol a segédfájlok találhatók.

Hozzáadjuk a segédfájlok elérési útját.

Annak érdekében, hogy ne írjuk a teljes elérési utat a párbeszédablakunkhoz, add hozzá az elérési utat a "D: \ MyLisp" mappához az AutoCAD segédfájlok elérési útvonalához. Ki fogunk hozni egy támogatási mappát.

Ehhez kattintson az "Alkalmazás gomb" és a megnyitott ablakban az "Opciók" gombra. Lásd az ábrát. 2.

Példa a lisp, autocad

Ábra. 2. Alkalmazás gomb

Megnyílik a "Beállítások" ablak. Lásd a 3. ábrát.

Példa a lisp, autocad

Ábra. 3. "Hozzáférési pálya hozzáadása a kiegészítő fájlokhoz"

Ebben megy a "Files" fülre.

Kattintson a [+] mellől a "Segédfájlok elérési útja" mellett.

Ezután kattintson a "Hozzáadás" gombra. Ezután kattintson a "Tallózás ..." gombra. Megnyílik a "Tallózás mappák" ablak.

Keresse meg a "D: \ MyLisp" mappát, és kattintson az OK gombra.

A segédfájlok elérési útjain megjelenik egy új "D: \ MyLisp" sor.

Példa a lisp, autocad

Ábra. 3. "Segédfájlok elérési útja"

Kattintson az OK gombra. Most az AutoCAD tudja, hol keresse meg a fájlt, és a teljes elérési út helyett csak írja a nevét.

A párbeszédpanel megnyitása és a párbeszéd megléte.

A függvény megnyitja a párbeszédpanelt, és visszatér T (Igaz), ha van egy párbeszéd a névvel ebben a fájlban.

Ha a párbeszédablak nem található, akkor nulla értékű lesz.

Nézzünk jobb megértést a sorban

cserélje ki a függvényt (new_dialog "mp_paral" dcl_id) a T. visszatérési értékével.

Kiderül (ha (nem T) (exit)) - ha nem T kilép. Más szóval, ha a párbeszédpanel nem nyitja meg a program befejezését.

Ha minden jól megy, akkor a párbeszédpanel az AutoCAD munkalapján nyílik meg. Lásd az ábrát. 5.

Példa a lisp, autocad

Ábra. 5. A DCL párbeszédpanel

A LISP program szünetel és várja a felhasználó működését.

Adja meg az értékeket a "Hossz", "Szélesség" és "Magasság" mezőkben, majd kattintson a két gomb egyikére. (OK vagy Mégsem). Az AutoCAD visszatér a LISP programhoz.

A műveletek leírása a gombok megnyomásakor és a párbeszédpanel bezárása.

Ahhoz, hogy leírja a program által végrehajtott műveleteket, amikor rákattint a gombokra, használja a action_tile függvényt. Általában így néz ki:

Így a következő kifejezés

Az alábbiakban a felhasználó által definiált függvényről (raz_paral) fogunk beszélni.

A function (done_dialog 1) - bezárja a párbeszédablakot, és átad egy olyan számértéket, amelyet a függvény (start_dialog)

A következő sorban

(start_dialog) olvassa el, milyen numerikus értékkel zárta be a párbeszédpanelt

Setq - hozzárendeli ezt az értéket a ddi változóhoz.

A párbeszédpanel letöltése

Funkció (unload_dialog dcl_id) - a párbeszédpanelt a dcl_id sorszámmal távolítja el.

A funkció leáll.

Felhasználói funkciók létrehozásához a defun funkciót használjuk. Általában így néz ki:

Felhasználó által definiált függvény (raz_paral) (a parallelepiped mérete).

A függvény (raz_paral) létrehozó programkód a 3. ábrán látható. 6.

Ábra. 6. "Felhasználó funkciója raz_paral"

Funkció (get_tile "eb_Dl") - a mező tartalmát az eb_Dl kóddal olvassa be a párbeszédpanelen. Visszaadja a kis értéket (ha a mező 100., akkor a "100" -t visszaadják).

Annak érdekében, hogy egy karakterláncot egész számra alakítsunk ki, használjuk a függvényt (atoi <строка>)

Így a szöveg

Olvasja a tartalmat a Length mezőben (az eb_Dl mező kódja), egész számgá alakítja át és hozzárendeli (a setq függvény használatával) a Dl változóhoz.

Olvassa el a tartalmat a "Szélesség" mezőből, és emlékezik rá a Sh változóra.

Olvassa el a tartalmat a "Magasság" mezőből, és emlékezik a Hi változóra.

Funkció (raz_paral) - nem tartalmaz argumentumokat és ideiglenes munkamódszereket. Ha a D1, Sh, Hi változók működési sorrendben vannak megadva, akkor a függvény végrehajtása végén a változók értékei törlődnek a fő memóriából. És szükségünk van rá, hogy a függvény (raz_paral) vége után ezek a változók megőrzik értékeiket.

A függvény létrejötte után a programban bárhonnan hívható (raz_paral).

Egyéni funkció (mp_kub Dl Sh Hi).

Tegyük át a "Példa egy egyszerű LISP program" leckében létrehozott programot egy felhasználó által definiált függvényre. Lásd az ábrát. 7.

Példa a lisp, autocad

Ábra. 7. "Felhasználó funkció mp_kub"

Ehhez törölje a "c:"

Hozzáadjuk a Dl Hi Sh argumentumokat.

És helyezze be az argumentumokat a programba a 200-as szám helyett.

Ennek eredményeképpen megkapjuk a felhasználó által definiált függvényt, melyet a 2. ábrán mutatunk be. 8.

Példa a lisp, autocad

Ábra. 7. "Felhasználó funkció mp_kub"

Az mp_kub függvény végrehajtása után nem szükséges a p1 p2 p3 p4 p5 p6 p7 p8 változók értéke. És hogy ne tárolják a RAM-ban, hozzáadjuk őket ideiglenes munkamódszerekként.

Ennek a funkciónak a megadásához be kell írnia

Egy közös LISP program egy párbeszédablakkal.

Az általános LISP program a párbeszédablakkal fog kinézni. 9.

Példa a lisp, autocad

Ábra. 9. »Általános program»

Az mp_paral program programkódja:

Töltse le az Mp_paral.dcl párbeszédpanelt (Fájlméret: 392 bytes)

Letöltés szoftver Mp_paral.lsp (Fájlméret: 781 bytes)

Hozzon létre egy "mp_paral" nevű felhasználói funkciót.

A "c:" előtag azt jelenti, hogy ezt a funkciót használhatja szabványos AutoCAD parancsként.

Adja meg a nevet az AutoCAD parancssorában.

(/ dcl_id nub Dl Sh Hi) - a programban használt ideiglenes működési változók.

Ezután létrejön a mp_kub felhasználói funkció (fent tárgyalt).

Ezután hozzon létre egy egyéni raz_paral függvényt (fent tárgyalt).

Ezután a program kezeli a párbeszédpanelt (fent tárgyalt).

Ha a ddi = 1 változó végrehajtja a függvényt (mp_kub Dl Sh Hi)

A változó ddi = 1. ha a felhasználó a párbeszédpanelen az "OK" gombra kattintott.

Ha a felhasználó megnyomja a "Mégsem" gombot, a ddi = 0 változó és a függvény (mp_kub Dl Sh Hi) nem kerül végrehajtásra.

A függvény (princ) csendes kimenetet ad.

Az utolsó ")" az mp_paral függvény végét jelenti.

Az mp_paral program betöltése és futtatása.

A program működésének tesztelése érdekében:

Hozzon létre egy új fájlt. 10.

Példa a lisp, autocad

Ábra. 10. "Új fájl létrehozása"

A program szövegét beírjuk, vagy másoljuk a webhelyről.

A fájlt a "D: / MyLisp" mappába mentjük az "mp_paral" néven.

Ezután töltse be a programot, és menjen az AutoCAD programba. Lásd az ábrát. 11

Példa a lisp, autocad

Ábra. 11. "A program letöltése"

A parancssorba írja be az mp_paral parancsot, és nyomja meg a gombot . Lásd az ábrát. 12.

Példa a lisp, autocad

Ábra. 12. "Parancssor"

Megnyílik a "Parallelepiped" párbeszédablak. Lásd a 13. ábrát.

Példa a lisp, autocad

Ábra. 13. "Párbeszédablak"

Ebben töltjük ki a "Hossz", "Szélesség", "Magasság" mezőket, majd kattintsunk az OK gombra.

A parancssorban megjelenik az üzenet: "Adja meg a bázispontot:". Kattintson bárhová az AutoCAD munkaablakában, és rajzoljon párhuzamos nyomtatást. Lásd az ábrát. 14.

Példa a lisp, autocad

Ábra. 14. "Parallelepiped"

Így ebben a cikkben egy példát találunk egy LISP program létrehozására a párbeszédpanelen.

  • Hogyan kezelhet egy párbeszédablakot a LISP programból?
  • Hogyan adhat hozzá hozzáférési utat a kiegészítő AutoCAD fájlokhoz?
  • Egyéni funkciók létrehozása és használata.

sikerült-e mindent?

Nehéz volt elvégezni ezt a leckét?

hol van nehézségeid?

Ha híreket szeretne kapni webhelyemről. Készítsen előfizetést.

Legközelebb.

Kapcsolódó cikkek