Šiame įraše apžvelgiame galingiausią „ne programuotojams“ prieinamą metodą, tinkinantį BricsCAD - LISP programavimo kalba - ją šiek tiek sunkiau sukurti nei makrokomandas ar scenarijus. Sužinosite, kas yra LISP ir kaip jis veikia BricsCAD. Taip pat sužinosite, kaip atlikti paprastus papildymus LISP.

Nors įrankių juostą ir meniu makrokomandas lengva rašyti ir redaguoti, jos riboja jūsų galimybes valdyti BricsCAD.


Šiame įraše aptariamos šios temos:


BricsCAD LISP istorija

LISP yra viena iš ankstyviausių programavimo kalbų, sukurta šeštojo dešimtmečio pabaigoje, siekiant padėti dirbtinio intelekto tyrimams. Jo pavadinimas trumpai reiškia „sąrašų apdorojimas“ ir buvo skirtas tvarkyti žodžių, skaičių ir simbolių sąrašus.

LISP pirmą kartą pasirodė CAD, kai dar 1985 m. „Autodesk“ prie „AutoCAD“ pridėjo nedokumentuotą funkciją v2.15 pavadinimu „Kintamieji ir išraiškos“. „Autodesk“ programuotojai paėmė XLISP, Davido Betzo parašytą viešosios srities tarmę, ir pritaikė ją „AutoCAD“. Pradinis kintamųjų ir išraiškų leidimas buvo silpnas, nes jo trūko sąlyginiai teiginiai - reikalingi programavimo kalboms, norint priimti sprendimus.

Papildomais leidimais „Autodesk“ pridėjo trūkstamus programavimo teiginius, galingas GETxxx, SSxxx ir EntMod procedūras (kurios suteikia tiesioginę prieigą prie brėžinių duomenų bazėje esančių subjektų) ir pervadino programavimo kalbą „AutoLISP“. Tai leido trečiųjų šalių kūrėjams rašyti procedūras, kuriomis buvo galima manipuliuoti visu piešiniu, o ne programuotojai - paprastas procedūras, kurios automatizuodavo kasdienę piešimo veiklą.

Kai „SoftDesk“ sukūrė „IntelliCAD“, jie įtraukė programavimo kalbą, labai panašią į „AutoLISP“, vadindami ją tiesiog „LISP“. (Manau, kad būtų buvę geriau tai pavadinti „IntelliLISP“, kad būtų išvengta painiavos su tikra LISP programavimo kalba. Dar geriau, jie būtų galėję suteikti tai madingam „iLISP“ žaidėjui.)

BLADE APLINKA

BricsCAD apima LISP ir palaiko „VisualLISP“ (šiose žinutėse nenurodyta). Galite peržiūrėti visą, oficialus BricsCAD LISP vadovas prisijungęs. Naudodamas V18, „Bricsys“ turi pažangųjį LISP autorinė aplinka, pavadinta „Blade“: „Bricsys LISP“ pažangios plėtros aplinka. Norėdami jį pradėti, įveskite Ašmenys komanda iš BricsCAD.

LISP IR AUTOLISP SUDERINAMUMAS

LISP, esantis BricsCAD, didžiąja dalimi yra suderinamas su AutoCAD's AutoLISP. Jei žinote „AutoLISP“, galite nedelsdami programuoti LISP, įskaitant dialogo langų valdymą. Tačiau LISP turi keletą skirtumų, kuriuos turėtumėte žinoti.

Papildomos LISP funkcijos

BricsCAD LISP yra papildomų funkcijų, nerastų „AutoLISP“. Tai apima:

LISP funkcija Reikšmė
acos Arkos kosinusas
asin Arkos sinusas
Atanas Hiperbolinis lanko tangentas
lubos mažiausias sveikasis skaičius, ne mažesnis kaip x.
kosas Hiperbolinis kosinusas
rasti Suranda elementą sąraše
grindys Didžiausias sveikasis skaičius mažesnis arba lygus x
get_diskserialid Unikali devynių skaitmenų ID eilutė
greitas Dabartinio proceso proceso ID
grarc Nubrėžia laikiną lanką ar apskritimą, nurodytu spinduliu ir spalva; pasirinktinai paryškinta
Grfill Piešia laikiną užpildytą daugiakampio plotą su nurodyta spalva; pasirinktinai paryškintame režime
log10 10 žurnalas
padėtis Indeksuoja elemento numerį sąraše
pašalinti Pašalina elementą iš sąrašo
apvalus Suapvalinamas iki artimiausio sveikojo skaičiaus
Paieška Ieško elemento ir grąžina jo sąrašo numerį
sinh Hiperbolinė sinusė
miegoti Pristabdyti vykdymą
stygos suskaidytos Padalijama eilutė, remiantis atskirtuvu
įdegis Tangentas
tanhas Hiperbolinis tangentas
iki Testuoja išraišką, kol ji teisinga
vla kolekcija- Grąžina kolekciją kaip LISP sąrašą

Skirtingos LISP funkcijos

LISP turi keletą funkcijų, kurios veikia skirtingai nei „AutoLISP“, teikdamos papildomą palaikymą.

Jie apima:

LISP funkcija Komentuok                                                                                                       
osnap Palaiko PLA (plano peržiūros) subjekto spragtelėjimas, norint fotografuoti iki 2D sankryžų.
ssget ir ssadd Palaiko papildomus atrankos režimus:
CC Crossing Cirklas
Oišorėje
OC Oišorėje Cirklas
OP Oišorėje Poligonas
PO PAliejus

Trūksta „AutoLISP“ funkcijų

LISP trūksta kai kurių funkcijų, rastų „AutoLISP“. Dėl dinamiškos LISP prigimties sunku sudaryti galutinį sąrašą. Štai keletas funkcijų, kurių man trūko:

  • Visi SQLsusijusios funkcijos, kurios susieja objektus „AutoCAD“ piešimas su įrašais išorinėje duomenų bazės byloje. „AutoCAD“, šios funkcijos prasideda „ase_“, kaip ir ase_lsunite ir ase_docmp.

LISP programavimo kalba

LISP gali naudoti daugybę kaukių: pradedant sudėjus du skaičius - komandos viduryje, parametriniu būdu nubraižant laiptus 3D forma, sukuriant naują BricsCAD vartotojo sąsają, manipuliuojant piešimo duomenų bazės duomenimis ...

Svarbiausias LISP aspektas, mano manymu, yra tai, kad jis leidžia nubraukti kelias kodo eilutes, kad būtų lengviau automatizuoti savo darbą. Kituose įrašuose parodysiu, kaip parašyti paprastą LISP kodą, kad jūsų BricsCAD projekto rengimo diena būtų lengvesnė.

Priešingai, galingiausia BricsCAD programavimo priemonė, vadinama SDS (sprendimų kūrimo sistema), yra tik sąsaja: jūs turite papildomai nusipirkti programavimo įrankius (skaitykite: $$$) ir turėti išsamių žinių apie pažangias programavimo metodikas. Pagrindinis SDS naudojimo pranašumas yra greitis: šios programos vykdo skaičiavimui imamą kodą net 100 kartų greičiau nei LISP.

PAPRASTAS SĄRAŠAS: DIDŲ NUMERIŲ PRIDĖJIMAS

Turėdami šiek tiek fono, pasinerkime į LISP naudojimą. Pradėkime nuo to, kas lengva, apie ką visi žino, sudėję du skaičius, pavyzdžiui, 9 ir 7.

  1. Paleiskite BricsCAD, bet kurią versiją; nereikia atidaryti piešinio.
  2. Kai pasirodys komandinė eilutė „:“, įveskite klaviatūros paryškintą šrifto tekstą, parodytą žemiau:

    : (+ 9 7) (paspauskite Enter.)
    16
    :

    „BricsCAD“ akimirksniu atsaka atsakymą, 16. (Šiuose keliuose kituose pranešimuose aš parodysiu funkciją, apie kurią kalbu, purpurine spalva.) Vis dėlto jums atrodo, kad atsakymas į šį atsakymą (+ 9 7) yra puikus. Taip yra todėl, kad LISP naudoja priešdėlio žymėjimą:

    Operatorius + pasirodo prieš operandus, 9 ir 7.

    Pagalvok apie tai „pridėk 9 ir 7“. Tai panašu į tai, kaip veikia pats BricsCAD: pirmiausia įveskite komandos pavadinimą (pvz., „Circle“), tada įveskite apskritimo koordinates.

  3. Atkreipkite dėmesį į skliaustelius, kurie yra LISP teiginyje. Kiekvienas atidarymas skliaustuose (reikalingas uždarymo skliaustas). Aš dabar galiu pasakyti, kad skliaustų balansavimas yra labiausiai gąsdinantis LISP aspektas. Štai kas nutinka, kai paliekate uždarymo skliaustus:

    : (+ 9 7 (paspauskite Enter.)
    Trūksta: 1) >

    BricsCAD rodo „Trūksta: 1)“ raginimą pasakyti, kad trūksta vieno uždarymo skliausto. Jei trūktų dviejų skliaustų, paraginimas būtų toks: „Trūksta: 2)“

  4. Įveskite trūkstamą) ir BricsCAD patenkintas:
    Trūksta: 1) >) (paspauskite patvirtinimo mygtuką.)

    16
    :

  5. Skliausteliuose naudojamas antras tikslas: jie įspėja BricsCAD, kad naudojate LISP. Jei turėtumėte įvesti tą pačią LISP funkciją „+ 7 9“ be skliaustų, BricsCAD neigiamai reaguotų į kiekvieną įvestą ženklą, aiškindamas kiekvieną tarpą kaip komandos pavadinimo pabaigą:

    : + (Paspauskite tarpo klavišą.)
    Neįmanoma atpažinti komandos. Prašau, pabandykite dar kartą.
    : 9 (paspauskite tarpo klavišą.)
    Neįmanoma atpažinti komandos. Prašau, pabandykite dar kartą.
    : 7 (paspauskite tarpo klavišą.)
    Neįmanoma atpažinti komandos. Prašau, pabandykite dar kartą.
    :

  6. Kaip jau galima įtarti, LISP teikia visas pagrindines aritmetines funkcijas: sudėjimą, atimtį, daugybą,
    ir padalijimas. Išbandykite kiekvieną funkciją, pirmiausia atimdami:

    : (- 9 7)
    2
    :

  7. Daugyba atliekama naudojantis pažįstamu * (žvaigždute) simboliu:

    : (* 9 7)
    63
    :

  8. Galiausiai padalijimas atliekamas su simboliu / (pasvirasis brūkšnys):

    : (/ 9 7)
    1
    :

    Oi, tai neteisinga! Padalijus 9 iš 7 yra 1,28571, o ne 1. Kas nutiko? Iki šiol dirbote su sveikaisiais skaičiais (dar vadinamais sveikaisiais skaičiais). Dėl šios priežasties LISP grąžino rezultatus sveikaisiais skaičiais, nors tai nebuvo akivaizdu tol, kol neatlikote padalijimo.
    Norėdami dirbti su tikraisiais skaičiais, pridėkite dešimtainę priesagą, kuri gali būti tokia paprasta kaip .0 - tai konvertuoja sveikuosius skaičius į tikruosius skaičius ir verčia LISP atlikti realiųjų skaičių padalijimą taip:

    : (/ 9.0 7)
    1.28571
    :

    O LISP teisingai pateikia atsakymą iki penkių skaitmenų po kablelio.

  9. Pažiūrėkime, kaip LISP leidžia įterpti skaičiavimus. „Lizdas“ reiškia atlikti daugiau nei vieną skaičiavimą vienu metu.

    : (+ (- (* (/ 9.0 7.0) 4) 3) 2)
    4.14286
    :

    Atkreipkite dėmesį, kaip skliausteliuose yra lengviau atskirti terminų lizdus.

Kas toliau?

Gerai, kad mes sužinojome, kaip BricsCAD veikia kaip brangus keturių funkcijų skaičiuotuvas, tačiau ši „per brangi skaičiuoklė“ atsitiks, kai įdarbinsite LISP, kad atliktumėte skaičiavimus komandomis. Kitame įraše aš jums parodysiu, kaip galite naudoti LISP, kad nubrėžtumėte septynių apskritimų linijinį masyvą, kad tilptų 9 colių erdvėje.


Atsisiųskite BricsCAD 30 dienų nemokamai

Pradėkite naudoti „BricsCAD“ šiandien

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


  1. Įvadas
  2. 55 patarimai BricsCAD vartotojams
  3. Nustatymai
  4. Aplinkos keitimas
  5. Individualizuota vartotojo sąsaja
  6. Įvadas į dialogo langą Tinkinti
  7. Tinkinkite meniu juostą ir kontekstinius meniu
  8. Įrankių juostos ir mygtukų piktogramos
  9. Makrokomandų ir diesel kodo rašymas
  10. Juostelės juostos ir skydai
  11. Klavišų paspaudimai, slapyvardžiai ir apvalkalo komandos
  12. Pelės, dukart spustelėkite ir planšetinio kompiuterio mygtukai
  13. Absoliučiai viskas, ką reikia žinoti apie keturkojį
  14. Apvirtimo savybės
  15. Darbo vietos ir vartotojo sąsaja
  16. Projektavimo įrankių ir konstrukcijų plokštės
  17. Sukurti paprasti ir sudėtingi linijiniai tipai
  18. Rašymo liukai
  19. Formų ir šriftų dekodavimas
  20. Kodavimas lauko tekstu
  21. Rašant scenarijus
  22. Programavimas naudojant LISP (įvadas)
  23. LISP funkcijos