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.
Á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.
Ábra. 2. Alkalmazás gomb
Megnyílik a "Beállítások" ablak. Lásd a 3. ábrát.
Á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.
Á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.
Á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.
Á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.
Á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.
Á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.
Á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
Ábra. 11. "A program letöltése"
A parancssorba írja be az mp_paral parancsot, és nyomja meg a gombot
Ábra. 12. "Parancssor"
Megnyílik a "Parallelepiped" párbeszédablak. Lásd a 13. ábrát.
Á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.
Á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.