Per pastaruosius keletą pranešimų apžvelgėme galingiausią metodą, galimą „ne programuotojams“ pritaikyti BricsCAD - LISP programavimo kalbą. Šiame įraše baigsiu mūsų LISP kodavimą su 7 patarimais, kaip rašyti LISP kodą.

Patarimas #1. Naudokite ASCII teksto rengyklę

BricsCAD turi savo integruotą LISP redaktorių: BLADE. Norėdami prieiti prie jos, tiesiog įveskite BLADE į komandinę eilutę.

LISP kodas turi būti parašytas paprastu ASCII tekstu - be specialiųjų simbolių ir formatavimo (pvz., bolipsas arba spalva) to tipo, kurį teksto rengytojai prideda prie failo. Kai programuojate LISP naudodami, tarkime, „Word“, išsaugokite kaip .docformato failas (numatytasis), BricsCAD paprasčiausiai atsisako įkelti LISP failą, net kai failo plėtinys yra .lsp.

Pasaulyje, kuriame vis labiau pasirenkami langai, sunkiau rasti tikrą ASCII teksto rengyklę. Tačiau yra viena, „Microsoft“ nemokamai tiekiama su „Windows“, vadinama „Notepad“, kurią rasite „langai aplankas. Nenaudokite „Write“ ar „WordPad“, tiekiamų kartu su „Windows“. Nors abu šiuos variantus galite išsaugoti ASCII, kartais pamiršite ir nusivilsite. „Linux“ teikia puikų teksto redagavimo (dar žinomą kaip „gedit“) teksto rengyklę, o „Mac“ turi „TextEdit“.

Beveik bet kuris kitas tekstų rengyklė turi galimybę išsaugoti tekstą paprastame ASCII, bet ne pagal nutylėjimą. Žodžių procesoriai turi daugybę skirtingų terminų, kuriuos turiu omenyje „gryną ASCII formatą“. „Word“ tai vadina „tik tekstu“; „WordPerfect“ tai vadina „DOS tekstu“; „WordPad“ tai vadina „Tekstiniu dokumentu“; o „Atlantis“ tai vadina „tekstiniais failais“. Jūs gaunate idėją.

#2 patarimas: įkelkite LSP kodą į BricsCAD

Norėdami įkelti LISP kodą į BricsCAD, naudokite apkrova funkcija. Štai pavyzdys kur taškų.

lsp yra LISP rutinos pavadinimas:

: (apkrova „Taškai“)

Nereikia įvesti .lsp pratęsimas.

Kai BricsCAD negali rasti taškai.lsp, turite nurodyti aplanko pavadinimą naudodamiesi pasviruoju brūkšniu arba dvigubais pasvirtais brūkšniais - jūsų pasirinkimas:

: (įkelti „\\BricsCAD\\taškai “)

Kai keletą kartų tai įvesite, jums pasidaro nuobodu. Norėdami išspręsti problemą, parašykite vienos eilutės LISP rutiną, sumažinančią klavišų paspaudimus:

: (šmeižia c: x () (įkelkite „taškus“)

Dabar bet kada turite įkelti taškai.lsp rutina, jūs tiesiog įveskite X ir paspauskite Enter, taip:

: x

„Windows“ sistemoje taip pat galite tiesiog vilkti .lsp failą iš failų tvarkyklės į BricsCAD. Atminkite, kad kodas juda į vieną pusę: iš teksto rengyklės į BricsCAD; Jūs negalite vilkti kodo iš BricsCAD atgal į teksto rengyklę.

#3 patarimas: perjungti sistemos kintamuosius

Viena programavimo problemų yra: Kaip pakeisti vertę, kai nežinai, kas yra vertė? Naudodamiesi BricsCAD, šią problemą galite susidurti su sistemos kintamaisiais, iš kurių daugelis yra jungikliai. A perjungti sistemos kintamojo vertė yra 0 arba 1, tai rodo, kad vertė yra išjungta (0) arba įjungta (1). Pavyzdžiui, sistemos kintamasis „SplFrame“ pagal numatytuosius nustatymus yra 0: kai išjungta, susuktos polilinijos nerodo jų rėmelio.

Nė vienas programuotojas niekada nemano, kad vertė „SplFrame“ bus lygus nuliui vien todėl, kad tai yra jo numatytoji vertė. Perjungimo sistemos kintamiesiems yra du sprendimai:

  1. Jei norite sužinoti, ar vertė yra 0, ar 1, naudokite „if“ funkciją.
  2. Atimkite 1 ir imkite absoliučią vertę.

Patarimas #4: būkite tvarkingi ir tvarkingi

Atminkite, kad mama liepė visada pasiimti savo daiktus. Ši sistemos kintamųjų nustatymo problema taikoma visuotinai. Kai jūsų LISP rutina keičia sistemos kintamųjų reikšmes, ji visada turi juos sugrąžinti į ankstesnio rutinos veikimo pradžią.

Daugelis programuotojų rašo bendrųjų funkcijų rinkinį, kuris rutinos pradžioje išsaugo esamus nustatymus, atlieka pakeitimus ir rutinos pabaigoje atkuria išsaugotas reikšmes. Tai parodo kodo fragmentas, kur pradinė vertė „SplFrame“ saugomas kintamajame „SplVar“ naudojant getvar ir tada atkurta su setvar:

(setq splvaras („getvar“ splframe “)

(„setvar“ splframe “ splvaras)

Patarimas #5: AUKŠČIAUSIAI palyginti su mažosiomis raidėmis

(Beveik) visais atvejais LISP programavimo kalba nesvarbi, jei kodą rašote naudodami didžioji raidę arba mažąsias raides.

Dėl aiškumo yra keletas konvencijų:

  • LISP funkcijų pavadinimai visomis mažosiomis raidėmis.
  • Jūsų funkcijų pavadinimai mišriu atveju.
  • BricsCAD kintamieji ir komandų pavadinimai visose didžiosiose raidėse.

Kaip sakiau, LISP visiškai nerūpi ir bet kokiu atveju viską paverčia didžiosiomis raidėmis. Tai taip pat pašalina visus komentarus, perteklinį tarpą, skirtukus ir grįžtamuosius simbolius. Išimtis yra tekstas kabutėse, tokiose kaip raginimai, kurie paliekami tokie, kokie yra.

Yra dvi išimtys, kai LISP rūpi: kai dirbate su pabėgimo kodais ir T raide.

Pabėgimo kodai yra naudojami teksto eilutėse ir turi likti mažosiomis raidėmis. Pavyzdžiui, \ e yra pabėgimo pobūdis (atitinka ASCII 27) ir \ t yra skirtuko simbolis.

Pastaba: jie naudoja pasvirusius brūkšnius; dėl šios priežasties negalite naudoti pasvirojo brūkšnio atskirdami aplankų pavadinimus Patarimas #2. LISP manytų, kad įvedėte pabėgimo kodą.

Kai kurios funkcijos naudoja raidę T kaip a vėliava. Jis turi likti DIDELIS.

Patarimas # 6: citatos kaip citatos

Kaip matėme, LISP programavimo kalba stygas naudoja kabutėse (”). Taigi, jūs negalite naudoti kabutės „Markto“ rodymo kabutėse ir coliuose, pavyzdžiui, rodyti 25 colius kaip 25 ″.

Sprendimo būdas yra naudoti pirmiau minėtus pabėgimo kodus Patarimas #5, ypač aštuonios dalies kodą, atitinkantį kabutės ASCII ženklą. Skamba sudėtingai? Tai yra. Bet viskas, ką jums reikia žinoti, yra 042. Štai kaip tai veikia:

Pirmiausia priskirkite eilutes kintamiesiems taip:

(setq disttxt „Ilgis yra“)
(setq distval 25)
(„setq qumark“\042“)

Atkreipkite dėmesį, kaip aš priskyriau aštuntą 042 kintamajam qumark. Pasvirusis brūkšnys nurodo LISP, šie skaitmenys yra aštuonios spalvos. Aštuoniukė, beje, yra pusė šešioliktainio: 0 1 2 3 4 5 6 7 10 11 12 … 16 17 20 21 …

Tada sujungkite tris stygas kartu su strcat funkciją:

(strcat distxt distval qumark)

Norėdami pateikti raginimą:

Ilgis yra 25 ″

#7 patarimas: skirtukai ir citatos

Vijay Katkar rašo kodą dialogo langui su sąrašo langeliu. Jis man pasakė: „Noriu parodyti stygas joje, kaip ir dialogo langas, kurį rodo Sluoksnis komanda. Aš gebu susieti reikšmes ir atspausdinti stygas, tačiau nėra jokio vertikalaus išlyginimo, nes stygos yra skirtingo ilgio. Bandžiau eilutėje naudoti skirtuko metacharakterį (\ t), bet jis atspausdino pažodinį „\ t“ sąrašo lauke. Ar yra koks nors būdas išspręsti šią problemą? “

Primenu panašią problemą: Kaip teksto eilutėje parodyti kabutes arba colių simbolį?

Pvz., Turiu LISP kodo eilutę, kurią noriu išspausdinti kaip:

Skersmuo yra 2,54 ″

Paprastai aš negaliu naudoti eilutės citatos (“) simbolio. LISP naudoja citatą kaip jos stygos ribotuvą, kad pažymėtų eilutės pradžią ir pabaigą. Šioje kodo eilutėje:

(paraginimas „Skersmuo yra 2,54“)

LISP pirmąjį citatos ženklą mato kaip eilutės pradžią, antrąją citatą - kaip eilutės pabaigą, o trečiąją citatą - kaip klaidą. Sprendimas yra meta nis simbolis. Tai leis man įterpti bet kokį ASCII ženklą, įskaitant specialiuosius simbolius, tokius kaip skirtukas, pabėgti ir kabutes.

Šis būdas yra kabutėje \ 042 naudoti ASCII kodą:

(raginimas „Skersmuo yra 2,54 mm\042“)

Panašiai Vijay turi naudoti \009 meta simbolis, kad tekstas būtų jo dialogo lange. Ir iš tikrųjų tai suveikė: „Pagal tai, ką tu man pasakei, aš naudojau tą patį ir jis veikė“.

Kas toliau?

Tai viskas LISP programavimui! Prisijunkite prie manęs kitą kartą, kai aš jums parodysiu, kaip sukurti pasirinktinius dialogo langus BricsCAD.


Atsisiųskite BricsCAD 30 dienų nemokamai

Pradėkite LISP programavimą šiandien

Nuolatinės arba prenumeruojamos licencijos, veikiančios visomis kalbomis, visuose regionuose.