BLADE yra išskirtinė nauja BricsCAD V18.2 savybė. BLADE - BricsCAD LISP Advanced Development Environment, BLADE yra naujas Visual LISP IDE, skirtas BricsCAD.

Bricsys ne tik prisivijo Autodesk, bet ir pateikė daugybę papildomų funkcijų, kurios tiek pranoksta Autodesk 1999 metų VLIDE, kad vargu ar Bricsys kada nors bus sugautas. Vis dėlto jis išlieka labai suderinamas.

Aš turėjau galimybę pamatyti šią IDE privačiai tada dar neįvardinta forma prieš išleidimą, kai dalyvavau Bricsys 2017 konferencijoje Paryžiuje. Mane nustebino ir nudžiugino funkcionalumas, pademonstruotas jo kūrėjo, Torsten Moses. Neseniai turėjau galimybę apklausti Torsteną apie jo kūrybą.

Torsten, aš suprantu, kad buvo sunku sukurti BricsCAD LISP IDE dėl to, kaip veikia BricsCAD LISP. Ar galite tai paaiškinti?

BricsCAD LISP naudoja OpenLisp pagrindinę sistemą, kurią sukūrė prancūzų kūrėjas Christian Jullien. Tai yra vienintelis LISP varikliukas, kuris vis dar tobulinamas; kiti, kuriuos radau, sustabdė plėtrą devintojo dešimtmečio viduryje.

OpenLisp yra labai modernus diegimas, nepalyginamas su sena XLisp tarme, naudojama AutoLISP. Palaikomos net į objektą orientuotos funkcijos. Todėl vidinis LISP išraiškų vaizdavimas skiriasi nuo tekstinio pateikimo, kaip matoma LISP faile.

Taigi mano parašytas AutoLISP kodas nėra tas, kurį vykdo BricsCAD?

Teisingai. Daugybė tipiškų AutoLISP konstrukcijų buvo įgyvendintos tam tikra emuliacija, kuri dar labiau padidino vidinius ir tekstinius vaizdavimo skirtumus. Dėl to yra didelis iššūkis sinchronizuoti vidinį OpenLisp išraiškos vykdymą su susijusiu tekstiniu vaizdavimu, kad būtų suteikta bent kokia taisymo galimybė.

Be paprastų techninių detalių, kurios atrodė praktiškai neišsprendžiamos, reikėjo tikėtis didelių pastangų įdiegiant visapusišką GUI. Tai buvo ne tik paprastas redaktorius, bet ir visa IDE GUI.

Tai būtų buvusi katastrofa, didžiulė gėda, jei būtume pateikę VLIDE, kuris atitiktų tik AutoCAD standartus. Tai buvo puiku savo laiku, bet praėjo jau 20 metų.

Idėja sukurti LISP IDE skirtą BricsCAD atrodė tokia pripildyta sunkumų, kad mes ją atidėjome ilgam.

Kaip jums pagaliau pavyko įveikti šiuos sunkumus?

Pirma, tai buvo grynas sutapimas. [juokiasi] Laimei, OpenLisp atradau paslėptą detalę - bet kuris LISP simbolis (ir išraiškos yra savotiški anoniminiai simboliai) gali laikyti neribotus, pridedamus pasirinktinius duomenis, labai panašiai į XData DWG duomenų bazės objektus. Aš net daugelį metų apie tai žinojau, bet niekada to „netinkamai“ nenaudojau LISP išraiškos vykdymui į redaktorių ir derintojo dvikryptį ryšį. Kai kurie pradiniai greitieji testai parodė, kad šis metodas buvo labai tinkamas.

Kitu sutapimu sužinojau, kad WxWidgets (mūsų kelių platformų sistema, ne tik GUI) jau apima palaikymą garsiajam Scintilla redaktoriui, atviro kodo redaktoriaus varikliukui, kurį plačiai naudoja daugelis redaktorių. WxWidgets netgi teikia dviejų lygių įvyniojimus - paprastą, pagrindinį įvyniojimą ir aukšto lygio įvyniojimų klasių sistemą. Tai puikiai tinka WxWidgets logikai.

Bet vis dėlto tai yra tik paprasčiausias redaktoriaus palaikymas, o ne GUI. Tuomet radau labai tinkamą, išplečiamo redaktoriaus ir GUI diegimą, pagrįstą ta WxWidgets Scintilla sistema - kaip atvirą kodą pagal WxWidgets licenciją. Taigi mums leidžiama naudoti šį šaltinio kodą komercinėje programoje. Tas redaktorius vadinamas wxStEdit.

Patikrinau, ar šis šaltinis tinka mūsų LISP IDE, ir įdėjau daug papildomų pastangų jo išplėtimui. wxStEdit kūrimas baigėsi maždaug 2008 m., tačiau jis vis dar kompiliavosi ir iš dalies veikė gerai. Nepaisant to, praplečiant tą GUI, radau ir ištaisiau daugybę trūkumų visuose susijusiuose lygiuose (Scintilla, WxWidgets Scintilla įvynioklyje ir wxStEdit).

Taigi būtent šis sutapimų rinkinys staiga išskleidė abu didelių vartų sparnus!

Aš jau anksčiau pasižymėjau, kad BricsCAD vykdo AutoLISP ir Visual LISP kelis kartus greičiau nei AutoCAD. Kaip naujoji technologija veikia tą našumą?

Visi nauji su BLADE susiję dalykai nedaro jokios įtakos normaliam LISP vykdymui už IDE ir derintuvo ribų. Ryšį užmezga keli atšaukimai, kurie įprasto apdorojimo metu neužtrunka jokio laiko. Todėl taip pat nėra jokios galimybės ką nors sugadinti.

BLADE įdiegimas yra labai saugus, o normaliam naudojimui našumas išlieka didelis.

Derintuvas ir sinchronizacija, visa tai yra namuose pagaminta medžiaga, optimizuota siekiant geriausio našumo net derinant, ir minimalios sistemos ir LISP atminties sunaudojimo.

Kuriant derinimo įrankį ir vidinę, palyginti su išorine, sinchronizaciją, aš taip pat pašalinau daugumą emuliacijų ir įgyvendinau juos kaip pagrindinę OpenLisp funkciją. Tai turi šalutinį poveikį, (repeat), (foreach) ir (vlax-for) funkcijos dabar veikia maždaug penkis kartus greičiau, su ciklo konstrukcija. Taigi, užuot sulėtinęs, BLADE sukūrimas pagreitino veiksmus!

Ar Mac ir Linux versijos taip pat gaus šią funkciją?

Taip, ji yra visiškai suderinama. Taip yra dėl WxWidgets ir mano paties įdiegtų dalykų įgyvendinimo. Aš jau patvirtinau, kad BLADE veikia Linux. Nėra skirtumų; net diegimo kode nėra jokių specialių Windows elementų.

Ar galite pateikti paprastą derinimo sesijos eigos pavyzdį?

Pirmiausia iš anksto neįkelkite jokio LISP failo į BricsCAD. Toks kodas, įkeltas ne per derintuvą, yra visiškai funkcionuojantis, tačiau jo negalima naudoti derinimui. Specialus ryšys tarp vidinio ir išorinio vaizdavimo užmezgamas tik įkeliant LISP kodą derintuvo būsenoje.

Tada BLADE atidarykite esamą FAS arba VLX projektą ir (arba) „Pavadintą sesiją“ arba tiesiog bet kurį LISP failą, kurį norite pradėti derinti.

Dabar meniu arba įrankių juostoje galite pasirinkti Pradėti derinimą arba paspausti F8 klavišą. Pasirodys speciali derinimo įrankių juosta. Galite arba aktyvuoti AutoBreak, kuris sustoja prie pirmojo vykdomojo kodo, arba aktyvuoti LISP šaltinį, kur norite pradėti derinimo veiksmus, ir padėkite kelis lūžio taškus.

Tada įkelkite dedikuotą LISP failą, naudodamiesi įprasta funkcija Įkelti į BricsCAD arba iš Debug skydelyje esančio mygtuko Įkelti. Dabar įkeltas kodas yra su įjungta derinimo funkcija, o dviejuose dešiniuose skirtukuose pamatysite failo ir derinimo funkcijas.

Kai derinimo priemonė sustoja pirmame lūžio taške, visi derinimo žingsnių režimai įjungiami įrankių juostoje, ir jūs turite visus įprastus derinimo žingsnių režimus. Iš tikrųjų daugiau nei AutoCAD VLIDE. Aktyvindami žymimąjį laukelį, laikrodžius (stebimus ir stebimus kintamuosius) galite nustatyti kaip „Data Break Point“. Tada, kai ši vertė pasikeičia, derinimo priemonė taip pat automatiškai sustoja prie susijusio LISP sakonio.

Ką daryti, jei jūsų kodas kviečia kodą iš failų, kurių neįkėlėte?

Nesijaudinkite dėl to. Derintojas tai atpažįsta ir prireikus paprašys įkelti susijusį LISP failą. Įprastame LISP gautumėte nežinomą funkcijos klaidą, tačiau derinimo priemonė sugauna tai iš anksto. Tiesą sakant, tai yra viena iš aukščiausios klasės funkcijų - įkelkite tik pirminį LISP failą, bet koks tolesnių failų derinimas vykdomas derinimo seanso metu. Tai labai patogu dirbant su sudėtingomis programomis - nereikia iš anksto įkelti jokio kito LISP šaltinio.

Esu įsitikinęs, kad patyrėte Murphy dėsnį, kuriame specifinė jums reikalinga funkcija yra ta, kuri nėra pakrauta. su BLADE šios problemos neturėsite.

Kas toliau? Ar šis darbas padarytas, ar dar yra ką tobulinti?

Kadangi BLADE vis dar yra labai jaunas produktas, tikrai dar yra kur tobulėti. Iki šiol pagrindinis tikslas buvo pateikti geras derinimo funkcijas ir šiek tiek pagrįstą projektų valdymą, tačiau ne tiek daug dėmesio skiriama paprastoms redaktoriaus galimybėms.

Mano darbų sąrašas vis dar turi keletą pagrindinių įgyvendinamų funkcijų. Norime pridėti greitųjų klavišų redaktorių, nes kiekvienas kūrėjas mėgsta savo klavišus, o mokytis kitų yra košmaras! Mes taip pat norime kryžminio tikrinimo kiekvienam failui ir sesijai, daugiausia didesnėms LISP programoms.

Tada laikui bėgant redaktoriaus galimybės bus išplėstos ir patobulintos, suteikiant daugiau funkcijų. Vienas iš pavyzdžių yra pateikti redaktoriaus patarimą, kuris parodytų funkcijos parašą ir trumpą pagalbą, užvedus pelės žymeklį ant LISP funkcijos pavadinimo.

Ir, žinoma, aš žinau, kad kai žmonės pradės tai naudoti gamyboje, gausime daug atsiliepimų apie norus, patarimų patobulinimams ir pranešimų apie klaidas. Labai tikėtina, kad bus daug norų pakeisti keletą detalių, kad BLADE labiau atitiktų AutoCAD VLIDE. Kartais tai gali būti sunku, be to, tai nėra pagrindinis tikslas. Tikiuosi, kad kūrėjai bus atviri šiek tiek kitokiam darbo srautui, atsižvelgiant į didelius pranašumus, kuriuos jie gauna mainais.

Apskritai, mes esame labai atviri kūrėjų idėjoms, poreikiams ir reikalavimams, kaip ir pats BricsCAD. Galų gale, tai kūrėjas, kuriam reikia dirbti su BLADE kiek įmanoma lengviau ir produktyviau.

Net pradinis BLADE išleidimas yra pagrįstas svarbiais beta testuotojų, tokių kaip Martin Drese (CAD Wiesel), atsiliepimais.

BricsCAD V18.2 yra prieinamas jau šiandien!

Pamatę atsidavimo lygį, kurį mūsų plėtros komanda skiria BricsCAD platformai, sutiksite, kad tai yra aiški .dwg pagrindu sukurto CAD ateitis. Kaip BricsCAD vartotojo, jūsų licencijos vertė auga kiekvienais metais. Tai naudinga visiems sanderio dalyviams. Jei šiandien dar nenaudojate BricsCAD, turėtumėte.

Išbandykite BricsCAD V18.2 nemokamai 30 dienų

PASTABA: kadangi manome, kad svarbu išgirsti skirtingus balsus ir nuomones, skelbiame reguliarius svečių įrašus. Kiekvienas autorius rašo savo vardu ir yra atsakingas už teksto turinį. Šis interviu iš pradžių buvo paskelbtas dvejomis dalymis Steve'o blog'o nauseam svetainėje