For the final installment in this series we will look at VBA (Visual Basic for Applications). The Pro and Platinum versions of BricsCAD for Windows include one of Microsoft’s programming languages, VBA. This is a version of Visual Basic designed to work inside software programs. BricsCAD runs VBA programs from menus and toolbars and at the command prompt.

VBA visiškai skiriasi nuo LISP, kaip ir LISP visiškai skiriasi nuo Dyzelinas ir makrokomandos. Jei išmokote BASIC programavimo kalbą, tos žinios, deja, nebus naudingos, nes „Visual Basic“ neturi nieko bendro su „BASIC“, išskyrus pavadinimą.

Šiame skyriuje supažindinama su VBA programavimo sąvokomis ir parodoma, kaip jį naudoti

BricsCAD. („Classic“, „MacOS“, „Linux“ ir „BricsCAD“ demonstracinėse versijose VBA nėra.)

Norėdami gauti išsamią 1BA4T VBA apžvalgą, galite peržiūrėti oficialų, BricsCAD VBA kūrėjų vadovas.


Šiame įraše aptariamos šios temos:


Įvadas į VBA

VBA yra antra pagal svarbą programavimo kalba BricsCAD. Nors LISP lengviau išmokti ir naudoti iš dviejų, ji tampa sudėtinga ir lėta didelėms programoms ir dideliems duomenų rinkiniams. Be to, norint sukurti dialogo langus, LISP reikalauja, kad naudotumėte sunkiai suprantamą DCL sistemą.

Kitame programavimo spektro gale yra DRX arba BRX, DWG arba BricsCAD vykdymo laiko plėtiniai. Šios programavimo sąsajos yra greičiausios iš visų, nes jos yra glaudžiai susietos su BricsCAD. Jūs naudojate D / BRX programų programavimo sąsajas su programomis, parašytomis C arba viena iš jos šakų. Jų išmokti nėra paprasta ir jie turi trūkumų: jūs turite sumokėti už kompiliatorių, kuris veikia su D / BRX. Priešingai, LISP yra nemokamas su visomis BricsCAD versijomis, o VBA - su BricsCAD Pro. DRX ši knyga neapima. Atkreipkite dėmesį, kad nuo BricsCAD V8 B / DRX pakeis SDS, „Softdesk“ kūrimo sistemą. Taip pat nuo V8 BricsCAD pakeitė savo VBA šaltinių failų formatą iš „IntelliCAD“ VBI į „AutoCAD“ DVB formatą.

Priešingai, VBA yra greita ir sukurta atsižvelgiant į šiandienines vartotojo sąsajas. Privalumas mokantis VBA yra tas, kad tą pačią programavimo kalbą galite naudoti daugelyje kitų „Windows“ programų; mokykis vieną kartą, programuok daugelyje. Bene sunkiausia mokytis VBA yra pažinti jos žargoną. Pradėkime!

PRIEIGA VBA PROGRAMOMS

Jūs rašote VBA kodą atskiroje programavimo aplinkoje, vadinamoje „VB Editor“. Redaktorius teikia pagalbą rašant kodą, taip pat kuriant vartotojo sąsają, kurią paprastai sudaro dialogo langai.

VBA programas galite paleisti komandoje BricsCAD arba per dialogo langą Pridėti valdytoją. Programas taip pat galima paleisti iš meniu ir įrankių juostos makrokomandų, taip pat iš „VisualLISP“ funkcijų, temų, kurių neapima šios el. Knygos.

Kodas gali būti įdėta BricsCAD brėžinyje arba laikomi už BricsCAD ribų, kad visi brėžiniai būtų prieinami:

  • Norėdami paleisti įterptąsias makrokomandas, naudokite VbaRun
  • Norėdami paleisti makrokomandas, saugomas a.dvb projekto failą, pirmiausia juos įkelkite per VbaMan dialogo langas arba „VbaLoad“ komandinė eilutė. Įkėlus makrokomandas galima paleisti naudojant arba VbaRun arba VbaMan komandos

Siunčiamos komandos

VBA turi komandą, veikiančią kaip ir LISP (komanda) funkciją: „SendCommand“ vykdo bet kokią komandą BricsCAD, pvz., „Linija“, „Ištrinti“ ir „Mastelis“. Funkcija taip pat tvarko komandų parinktis, tokias kaip „1,1“ ir „Visi“.

Pažvelkime į tai. Čia yra VBA kodas, skirtas brėžti liniją tarp kelių x, y koordinačių porų.

Sub naudojant_SendCommand ()

TaiPiešimas.„SendCommand“ „1,1 1,8 11,8 11,1 c linija“

Pabaigos antr

PATARIMAS Šis VBA kodas per daug nesiskiria nuo lygiaverčio LISP kodo, kuris atrodo taip:

(nustatykite naudodamiesi_the_sendcommand ()

(komanda „1,1 2,2 c eilutė“)

)

VBA kodo fragmente naudojami žodžiai turi tokią reikšmę:

Sub pradeda naują paprogramę (arba funkciją).

Naudojant_siųsti_komandą () įvardija paprogramę. Skliausteliuose () nurodoma, kad nenaudojami kintamieji. Skirtingai nuo LISP, VBA turi žinoti kintamųjų pavadinimus ir jų tipą iš anksto. Kintamuosius ir tipus aprašysiu vėliau šiame skyriuje, tačiau dabar pakanka žinoti, kad tipas nurodo kintamojo turimų duomenų tipą, pvz., Tekstą (eilutes), sveikus skaičius (sveikus skaičius), dešimtainius skaičius (realius), ir kitos rūšies duomenys.

„ThisDrawing.SendCommand“ veikia pagal dabartinį brėžinį, kurį paprastai atpažįsta „ThisDrawing“. Nenurodote piešinio pavadinimo, jums tiesiog reikia naudoti „ThisDrawing“, o VBA žino, apie ką kalbate.

„1,1 1,8 11,8 11,1 c linija“ vykdo komandą „Line“, nubrėždamas keturias linijas, sudarančias stačiakampį tarp 1,1–11,8. Komanda ir jos raginimai yra skaitomi kaip eilutė, o tada siunčiami į BricsCAD komandų procesorių - taip, lyg būtumėte tai įvedę komandų eilutėje.

PATARIMAS Norėdami tinkamai užbaigti komandą, įsitikinkite, kad eilutės pabaigoje yra tarpas, prieš pat baigiamąją kabutę. Aukščiau pateiktame kode galite pamatyti tarpą tarp c ir „.

Pabaigos antr signalizuoja paprogramės pabaigą.


ĮDĖTAS ARBA IŠORĖS

BricsCAD saugo VBA makrokomandas piešiniuose (įterptuosiuose) arba .dvb failuose (išoriniuose). Kiekvienam metodui yra privalumų ir trūkumų, išvardytų šioje lentelėje:

Įterptas Išorinis 
Sandėliavimas brėžiniuose į.dvb failus
Įkeliama prikrauta piešinių pakrautas „VbaLoad“ komanda
Paskirstymas su .dwg byla su .dvb byla
Reaktoriai taip ne

Įterptosios makrokomandos negalima naudoti kituose piešiniuose, nebent ją specialiai įterpiate į kitus piešimo failus.

Norėdami konvertuoti projektus į įterptinius, naudokite komandos „VbaMan“ mygtuką Įterpti. Rimta įterptųjų makrokomandų problema yra ta, kad jose gali būti virusų. Taigi, BricsCAD rodo įspėjamąjį dialogo langą, kuriame pateikiama galimybė išjungti arba įgalinti makrokomandas arba neleisti jų visiškai įkelti.


VBA RUTINŲ RAŠYMAS IR VYKDYMAS

Nors „Notepad“ ar kitas teksto rengyklė gali būti naudojama LISP rutinai rašyti, programavimo aplinka, įtraukta į BricsCAD, turi būti naudojama VBA. Šią aplinką naudojate rašydami ir vykdydami visus kodus. Norėdami pasiekti VBA redaktorių, atlikite šiuos veiksmus:

  1. Pirmasis žingsnis yra užtikrinti, kad BricsCAD galėtų paleisti VBA makrokomandas. Kadangi VBA yra virusų šaltinis, galimybė paleisti VBA programas paprastai yra išjungta. Štai dabar, kad įgalintumėte VBA makrokomandas:
    1. Iš BricsCAD Įrankiai meniu, pasirinkite Saugumas. Atkreipkite dėmesį į dialogo langą Sauga.įvadiniai pirštų vaizdiniai pagrindai
    2. Jei reikia, pasirinkite Saugumo lygis skirtuką.
      PATARIMAS Šis dialogo langas būtinas dėl netinkamo „Microsoft“ programuotojų sprendimo. Kurdami VBA: jie leido dokumentams saugoti VBA kodą. Ši patogi funkcija tapo didele saugumo problema, nes ji įsilaužėliams padėjo lengvai platinti gerybiškai atrodančius „Word“ ir „Excel“ failus, kuriuose buvo kenkėjiško VBA kodo.
      Po to, kai per daug žmonių ir kompanijų patyrė brangių failų ištrynimą iš jų kompiuterių, „Microsoft“ galiausiai pridėjo šį dialogo langą, kad įveiktų VBA išnaudojimą. Šiandien „Windows“ pagrindu sukurtuose dokumentuose pagal numatytuosius nustatymus negalima paleisti VBA kodo (saugos lygis = aukštas), todėl turite sumažinti VBA veikimo saugos lygį.
    3. Jei saugos lygis nustatytas kaip aukštas, pakeiskite jį į Vidutinis arba Žemas. Nustatymų skirtumai išvardyti toliau pateiktoje lentelėje:
      VBA nustatymas Reikšmė
      Aukštas Neleidžiama veikti visoms VBA rutinoms; numatytas.
      Vidutinis BricsCAD klausia, ar norite paleisti kiekvieną VBA rutiną.
      Žemas Visos VBA tvarkos vykdomos be jokių abejonių
    4. Pakeitę saugos lygį šiame dialogo lange, turite iš naujo paleisti BricsCAD naudodami Baigti komandą arba naudojant Failas | Išeiti.
  2. Įjungę VBA, dabar galite atidaryti jos programavimo aplinką. Nuo Įrankiai meniu, pasirinkite VBAir 436 BricsCAD V20 pritaikymas tada pasirinkite „Visual Basic“ programoms. Atkreipkite dėmesį į VBA programavimo aplinką.vizualinių pagrindų darbo sritis
  3. Kodas rašomas moduliais - forma, kuri iš pradžių yra tuščia, į kurią įvedate kodą. Norėdami pradėti naują modulį, naudokite Įdėti meniu, pasirinkite Modulis. Atkreipkite dėmesį, kad pasirodys tuščias langas, kaip parodyta žemiau.„Visdual Basics“ programų kodavimas
  4. Į modulį įveskite šį kodą. (Tai tas pats linijų piešimo kodas, kurį matėte anksčiau.)

    Sub naudojant_SendCommand ()

    „ThisDrawing.SendCommand“ eilutė 1,1 2,2 1,2 c “

    Pabaigos antrkodavimas

  5. Dabar turite pakankamai kodo programai vykdyti. Spustelėkite mygtuką Vykdyti, kurį rasite įrankių juostoje.„Visdual Basics“ programų kodavimo įvadasSėkmė! Atkreipkite dėmesį, kad BricsCAD nubrėžia trikampį. Jei įprastos programos nevykdo, patikrinkite, ar nėra šių problemų:
    • Ar saugumas nustatytas į aukštą ar vidutinį?
    • Ar kode yra rašybos klaidų?

Galite naudoti „SendCommand“, norėdami piešti ir redaguoti objektus ir pakeisti požiūrio taškus tokiomis komandomis kaip „Mastelis“ ir „Pan“. Jį galite naudoti norėdami įterpti blokus, pakeisti ypatybes ir brėžinius. Tiesiog būkite atsargūs, kad teisingai įvesite komandų parinktis; koordinatės ir variantų pavadinimai yra ypač nervingi.

PRANEŠIMŲ RODYMAS

Pranešimus rodyti dialogo lange yra taip pat lengva, kaip naudoti šį kodą su „MsgBox“ funkciją:

MsgBox „Piešimo kraštinė baigta.“

  1. Pridėkite eilutę prie VBA redaktoriaus kodo:redaguoti kodą
  2. Tada spustelėkite Bėk mygtuką dar kartą. BricsCAD turėtumėte pamatyti dialogo langą, kuris atrodo taip:

Dabar tai yra daug, daug lengviau nei užkoduoti dialogo langą LISP naudojant DCL!

Dialogo langelių konstravimas

Kalbant apie dialogo langus, VBA apima interaktyvų dialogo langų konstravimo rinkinį, vadinamą „vartotojo forma“. Pažvelkime, kaip tai veikia.

Norėdami sukurti naują vartotojo formą, atlikite šiuos veiksmus:

  1. Projektų paletėje dešiniuoju pelės mygtuku spustelėkite 1 modulis.
  2. Iš spartiojo meniu pasirinkite Įdėtiir tada pasirinkite „Userform“.
    Atkreipkite dėmesį į pilką langą, užpildytą taškų tinkleliu. Čia kuriate dialogo langus.
    Šalia formos yra „Toolbox“. Jame yra elementai, sudarantys dialogo langus, teisingame VBA žargone žinomi kaip „valdikliai“. Tikriausiai atpažinsite daugelį valdiklių, pvz., Teksto įvedimo laukelį, žymimąjį laukelį ir akutę.
  3. Norėdami įdėti valdiklį, pasirinkite jį iš „Toolbox“ ir padėkite jį vartotojo formoje. Pvz., Norėdami pridėti žymimąjį laukelį, atlikite šiuos veiksmus:
    1. Įrankių dėžėje spustelėkite žymimąjį laukelį
    2. „Userform1“ spustelėkite bet kur. Atkreipkite dėmesį, kad žymimasis laukelis yra su bendru tekstu, kuriame rašoma „Checkbox1“.
    3. Norėdami redaguoti tekstą ar bet kurią kitą žymės langelio ypatybę, užmeskite akį į ypatybių paletę. (Jei jo nematyti, pasirinkite Ypatybių langas nuo View (vaizdas) Meniu; jei reikia, spustelėkite Suskirstyti į kategorijas Skirtukas.) Atkreipkite dėmesį į valdiklio pavadinimą ir daugybę kitų savybių - pasirinkimas gali tapti didžiulis.
    4. Parašėte kodą ir nupiešėte paprastą dialogo langą. Norėdami sujungti žymės langelį su VBA kodu, pasirinkite Pasirinkite Objektai įrankį iš „Toolbox“ ir dukart spustelėkite žymės langelio valdiklį.žymės langelio vizualinis kodavimas
      Atkreipkite dėmesį, kad atsidaro kitas modulio langas, į kurį galite įvesti kodą - to aš šiuo metu nedetalizuosiu.pridedant elementus Bricscad

Kodo dialogo lango nuorodą išsamiau apžvelgsime vėliau šiame skyriuje. Vis dėlto pirmiausia
įvadas, kaip iš tikrųjų veikia VBA.

BricsCAD V20 automatikos objekto modelis

 kaip iš tikrųjų veikia VBA

Objektinis programavimas

Programuojant yra efektyviau dirbti objektai. Ne, ne geometrinius, o programavimo objektus. Kad būtų aiškus skirtumas, aš geometrinius objektus vadinu kaip subjektai.

Turėjote užuominą apie objektyvų VBA pobūdį su „ThisDrawing.SendCommand“ kodo dalis: „SendCommand“ funkcija nurodoma valdyti „ThisDrawing“ objektą, kuris yra dabartinis brėžinys. Prie „ThisDrawing“ galite pridėti objektų, tokių kaip „ModelSpace“ kad komandos būtų vykdomos modelio vietoje, o ne popieriaus vietoje:

TaiPiešimas.„ModelSpace“.SendCommand ()

Atkreipkite dėmesį į juos jungiančius taškus (.), Panašiai kaip taškinėse porose esantį tašką, kurį LISP naudoja prieigai prie subjekto duomenų. VBA yra orientuota į objektų orientaciją, kur viskas BricsCAD yra sutvarkyta kaip objektai ir pagal griežtą hierarchiją. Techniškai tai vadinama „BricsCAD duomenų bazės atskleidimu“ naudojant „Microsoft“ bendrą objektų modelį (COM).

BENDRAS OBJEKTO MODELIS

Priešais esančiame puslapyje yra labai svarbi figūra: tai BricsCAD objekto modelio schema. (Keičiant naujus objektus, jis keičiasi nuo leidimo iki leidimo.) Diagramoje parodyta, kaip subjektai yra susiję su objektais:

  • Subjektai yra rastame modelyje, popieriuje arba blokuose
  • Modelio / popieriaus vieta ir kaladėlės yra dokumentus
  • Dokumentai (brėžiniai) yra taikymas (BricsCAD)

Kaip alternatyvą schemai galite naudoti objektų naršyklę, esančią BricsCAD VBA programavimo aplinkoje, aprašytą toliau.

OBJEKTO NARŠYKLĖ

Objektų naršyklėje pateikiami visi objektai, kuriuos VBA gali pasiekti naudodamas BricsCAD. Norėdami naudoti objektų naršyklę, atlikite šiuos veiksmus:

  1. Nuo View (vaizdas) meniu, pasirinkite Objektų naršyklė. Atkreipkite dėmesį į objektų naršyklės paletę.pasirinktinis elementas su vba
  2. Išskleidžiamajame sąraše Visos bibliotekos pasirinkite BricsadDb. (Db yra trumpas duomenų bazė.)išskleidžiamasis meniu
  3. Slinkite žemyn iki „AcadLine“. Tai yra BricsCAD linijos esybė, tačiau ji pavadinta „acadline“, kad išlaikytų suderinamumą su VBA programomis, užprogramuotomis „AutoCAD“.
  4. Dešinėje atkreipkite dėmesį į visas ypatybes, metodus ir įvykius, kurie yra prieinami eilutės objektams. Aš juos išsamiai aprašiau kitame skyriuje.
  5. Apačioje yra naudinga informacija. Kai žymeklis yra ant nario, pateikiamas trumpas aprašymas kartu su nuoroda į tėvą.
    Žemiau pateiktame paveikslėlyje parodyta informacija apie ilgį:
  • Ilgis yra a nuosavybė tai nurodo dabartinės linijos ilgį.
  • Tai dvigubas kintamasis (dvigubo tikslumo slankiojo kablelio).
  • „Is“ yra tik skaitomas, o tai reiškia, kad programuotojai ir vartotojai negali redaguoti vertės.
  • Tai yra BricsCADDb.AcadLine narys.

Dabar galite suvokti, kad ypatybių paletėje pateikiamos BricsCADDb išsaugotos vertės visiems brėžinyje esantiems subjektams. Pažvelkime į viską, ką reiškia linijinis objektas.

PATARIMAI Pervardykite mygtukus ir teksto laukelius taip, kad pavadinimai apibūdintų, ką jie daro. Pavyzdžiui, pervadinkite mygtuką Gerai kaip btnOK; pervadinti paskutinio taško teksto laukelį į txtLastPoint ir pan.

Jei šrifto dydis ir stilius lange Kodas yra per maži, galite juos pakeisti. Meniu Įrankiai pasirinkite Parinktys. Pasirinkite Redaktoriaus formatas, tada pasirinkite kitą šrifto dydį ir (arba) šrifto pavadinimą.

VBA kodo rengyklė naudoja spalvas, kad paryškintų įvairius kodus:

Žalias tekstas Komentarai
Juodas tekstas Normalus kodas
Mėlynojo teksto VBA raktiniai žodžiai
Raudonas tekstas Klaidos sintaksėje
Geltonas paryškinimas Vykdymo taškai
Rudos spalvos paryškinimo taškai

EILUTĖ

Linijos esmė sukuriama naudojant „AcadLine“ metodas modelio ar popieriaus erdvėje ir langelyje:

  • „ModelSpace.AddLine“ prideda eilutę prie modelio erdvės.
  • „PaperSpace.AddLine“ prideda eilutę prie dabartinio maketo skirtuko.
  • „Block.AddLine“ prideda eilutę prie nurodyto bloko, dinaminio bloko ar xref bloko.

Linijos turi savybių, metodų ir įvykių:

  • Savybės paveikti linijos geometriją ir išvaizdą.
  • Metodas nurodo eilučių redagavimo būdus.
  • Įvykiai reiškia būdą, kuriuo subjektai praneša, kad jie buvo pakeisti

Žemiau išvardijau visas eilutės objektų ypatybes, metodus ir įvykius. Sąrašas pateikia idėją
prieigos prie BricsCAD vidinės dalies turtingumo (arba sudėtingumo), turtingumo
teikia objekto modelis per VBA.

Savybės

Linijos gali turėti šias savybes. Kai kurie iš jų bus jums žinomi; kiti bus nauji.

Savybės Reikšmė
Geometrinės savybės
Kampas Kampas radianais nuo x ašies, matuojamas prieš laikrodžio rodyklę
Delta Delta-x, -y ir -z reikšmės iš vieno taško į kitą
Ilgis Linijos ilgis
Normalus Normalu linijai
„EndPoint“ X, y, z linijos pabaigos taško koordinatė
„StartPoint“ X, y, z pradžios taško koordinatė
Subjekto ypatybės
Hipersaitai Įterptoji hipersaitas
Sluoksnis Sluoksnio pavadinimas
Linetype Linijinio tipo pavadinimas
LinetypeScale Linijinio tipo skalė
Linijinis svoris Linijinis svoris
Medžiaga Medžiagos pavadinimas (naudojamas perteikimui)
PlotStyleName Braižyti stiliaus pavadinimą, jei įgalinta
Thickness Storis, z kryptimi
„TrueColor“ Spalva
Matomas Matomumas, nepriklausomas nuo sluoksnio nustatymo
Kitos savybės
Taikymas Nurodo BricsCAD programą
Dokumentas Nurodo piešinį
Rankena Nurodo subjekto identifikavimo numerį
„HasExtensionDictionary“ Praneša, ar eilutėje yra pratęsimo žodynas
ObjectID Alternatyvus subjekto ID numerio gavimo būdas
„OwnerID“ Praneša pagrindinio objekto „ObjectID“

Metodai

Liniją galima redaguoti šiais būdais:

Metodas Reikšmė
Esybės redagavimas
„ArrayPolar“ Sukuria poliarinį linijos masyvą
Masyvas Stačiakampis Sukuria stačiakampį masyvą
Kopijuoti Nukopijuoja eilutę
Ištrinkite (Delete) Ištrina liniją
atspindėkite (Mirror) Veidrodis linija
Veidrodis3D Veidrodinė linija 3D
Perkelti (Move) Perkelia liniją
Offset (ofsetas) Sukuria ofsetinę eilutės kopiją
Pasukti Pasuka liniją
Pasukti3D Pasuka liniją 3D formatu
„ScaleEntity“ Pakeičia linijos dydį
„TransformBy“ Judina, keičia mastelius ir (arba) pasuka liniją
Kitas metodas:
„GetBoundingBox“ Pateikia stačiakampio, apimančio liniją, koordinates
„GetExtensionDictionary“ Grąžina eilutės pratęsimo žodyną
„GetXData“ Pateikia eilutės išplėstinio objekto duomenis
„SetXData“ Eilutėje saugomi išplėstiniai objektų duomenys
Susikerta su Pateikia koordinates ten, kur linija kerta kitus objektus
Paryškinti Paryškina liniją
Atnaujinti Atkuria liniją

Įvykiai

Pakeitus subjektus, jie sukelia įvykius. Linijoms yra tik vienas įvykis. The Pakeista įvykis suaktyvinamas, kai nustatoma savybė, net jei nauja vertė lygi dabartinei.

Įvykiams neleidžiama suaktyvėti, kol atidaromi modaliniai dialogo langai. (A modalinis dialogo langas yra tas, kurį reikia atmesti, kad galėtumėte toliau dirbti BricsCAD; ty dauguma dialogo langų.)

Dialogo langelis su kodu

Ankstesniuose įrašuose aš jums parodžiau, kaip tai padaryti sukurkite dialogo langą naudodami DCL, tada pridėkite LISP kodą, kad jis veiktų. Dialogo langas atrodė taip:

Dialogo lange rodoma dabartinė trijų sistemos kintamųjų vertė:

  • Paskutinis punktas praneša dabartinę „LastPoint“ sistemos kintamojo vertę.
  • Paskutinis kampas praneša „LastAngle“ vertę (tik skaityti).
  • Paskutinis raginimas praneša „LastPrompt“ (tik skaityti) vertę.

Pakartokime pamoką, šį kartą naudodamiesi VBA, kad atliktumėte abu darbus, kuriuos prieš tai darė atskirai DCL ir LISP - suprojektuoti dialogo langą ir parašyti-paleisti kodą.

DIALOGO DĖŽUTĖS KŪRIMAS

Dialogo langeliai suprojektuoti naudojant VBA programavimo aplinką taip:

  1. Paleiskite „BricsCAD“ ir naudokite įrankius | VBA | „Visual Basic for Applications“ komanda, skirta atidaryti VBA programavimo aplinką.
  2. Paleiskite naują „Userform“. (Meniu Įterpti pasirinkite „UserFrom“.) Atkreipkite dėmesį, kad VBA sukuria bendrą dialogo langą „UserForm1“.
  3. Pakeiskite pavadinimo juostos pavadinimą atlikdami šiuos veiksmus:
    1. Atidarykite „Properties“ paletę. (Meniu Rodinys pasirinkite langą Ypatybės.)
    2. Slinkite žemyn iki antraštės, tada pakeiskite „UserForm1“ į „Last Input“. Rašydami atkreipkite dėmesį, kad dialogo lango pavadinimo juosta tuo pačiu metu atnaujinama.kuriant pasirinktinius elementus „bricscad“ su VBC
  4. Didžiąją dalį mūsų naujojo dialogo lango sudaro trys teksto įvedimo laukeliai. Pirmasis yra sukonstruotas taip:
    1. Įrankių rinkinyje pasirinkite „TextBox“ kontrolė.
    2. Spustelėkite bet kur formos centre. Atkreipkite dėmesį, kad pasirodo teksto įvedimo laukelis, tačiau vartotojui trūksta teksto raginimo, pvz., „Paskutinis kampas:“ Jūs įtraukiate tekstą šiek tiek vėliau.dėžutės anatomija
  5. BricsCAD sistemoje „LastAngle“ kintamasis yra tik skaitomas. Tai reiškia, kad vartotojai gali peržiūrėti vertę, bet jos nekeisti. Tekstiniai laukeliai, kurių vartotojai negali redaguoti, tradiciškai yra pilkos spalvos. Štai kaip teksto laukelį padaryti tik skaitomą ir pilką:
    1. Įsitikinkite, kad teksto laukelis pasirinktas (turi rankenas, kaip parodyta aukščiau).
    2. Paletėje „Ypatybės“ pakeiskite „BackColor“ (randama skyriuje „Išvaizda“) vertę į „Neaktyvi pavadinimų juosta“.

    „Neaktyvi pavadinimo juosta“ yra išvada, iš anksto nustatyta vertė VBA, panaši į „pi“ LISP. („Enum“ sutrumpintai reiškia „išvardytas“.) Jei vartotojas pakeis „Windows“ vartotojo sąsajos spalvas, pasikeis ir šio teksto laukelio fono spalva.

  6. Norėdami pridėti raginimą, naudokite etiketės įrankį taip:
    1. Pasirinkite Etiketė įrankį iš „Toolbox“.
    2. Spustelėkite ir vilkite stačiakampį priešais teksto laukelį. Jei reikia, vilkite etiketę į vietą.
    3. Bendrojo teksto „Etiketė1“ atgalinis klavišas pakeičiamas tekstu Paskutinis kampas:
    4. Norėdami teisingai pateisinti tekstą, pakeiskite reikšmę „TextAlign“ nuosavybė iki 3 (fmTextAlignRight).
      PATARIMAS Galite vilkti dialogo lango elementus su žymekliu, tačiau jis linkęs pereiti į tinklelio taškų tarpus. Norėdami tiksliai sureguliuoti elemento vietą, naudokite „Properties“ paletės skyrių „Position“.
      Pakeiskite „Viršuje“ vertę norėdami perkelti elementą aukštyn ir žemyn, kairę - horizontaliai. Vertės nurodo taškų skaičių iš viršutinio kairio dialogo lango kampo.
  7. Kitus du teksto įvesties laukelius galite sukurti naudodami kopijavimą ir įklijavimą:
    1. Norėdami pasirinkti abu elementus, naudokite žymeklį. Štai du būdai, kaip tai padaryti:
      • Aplink juos galite vilkti stačiakampį.
      • Arba galite pasirinkti vieną, palaikyti nuspaudę „Ctrl“ klavišą ir pasirinkti kitą.
    2. Paspauskite Ctrl + C padaryti kopiją (saugoma iškarpinėje).
    3. Paspauskite Ctrl + V norėdami įklijuoti kopiją į dialogo langą. Deja, kopijos įklijuojamos tiesiai ant originalų. Tai reiškia, kad turite perkelti vieną iš jų, vadovaudamiesi įklijavimu.
    4. Atskirkite sutampančius elementus, vilkdami kopijas virš originalų.
  8. Pakeiskite naujos teksto įvesties elementų poros ypatybes:
    • Keisti teksto etiketę į Paskutinis taškas.
    • Pakeiskite „BackColor“ teksto laukelio Lango fonas (balta), nes vartotojas gali pakeisti „LastPoint“ sistemos kintamojo vertę.
  9. Redaguokite Paskutinis raginimas srityje. Laikykite teksto laukelio „Last Prompt“ fono spalvą pilką, nes „LastPrompt“ sistemos kintamojo vartotojai negali redaguoti.
  10. Gana tikėtina, kad elementai nėra išsidėstę tobulai. VBA gali juos sulyginti taip:
    1. Pasirinkite tris teksto elementus ir dešiniuoju pelės mygtuku spustelėkite.
    2. Iš spartiojo meniu pasirinkite Teisės. Atkreipkite dėmesį, kad dabar jie puikiai išsirikiuoja.
    3. Pakartokite tris įvesties laukelius.
  11. Paskutiniai elementai yra mygtukai Gerai ir Atšaukti. Iš įrankių dėžutės vilkite Komandos mygtukas elementą vartotojo formoje.
    Kairė: Pasirenkamas „CommandButton“ įrankis ir tada… Dešinė: ... vilkite jį į formą.
  12. Pakeiskite savo antraštės ypatybę į OK.
  13. Pakartokite, kad pridėtumėte Atšaukti mygtuką.

dizainas langas baigtas. Kitame etape pridedamas kodas, kuris priverčia dialogo langą veikti.

Jei norite, galite tiksliai sureguliuoti dialogo lango išvaizdą, susiaurindami mygtuką Gerai, aplink teksto įvesties laukelius pridėdami rėmelį, keisdami elementų spalvas ir pan. Man įdomu, kad man labiau patinka dirbti su DCL, nes BricsCAD rūpinasi, kad dialogo lango elementai būtų išdėstyti taip, kad jis atrodytų gerai - be visų VBA reikalaujamų rankinių pakeitimų.

KODO PRIDĖJIMAS

Įdiegę dialogo lango dizainą, pradėkime dirbti su kodu. LISP viena rutina tvarko viską, kas vyksta dialogo lange; priešingai, VBA naudoja daug kodo fragmentų. Vienas fragmentas tvarko mygtuką „Atšaukti“, kitas - mygtuką „Gerai“, kitas tvarko teksto laukelio „Paskutinis taškas“ rodomą vertę ir pan.

Jums nereikia jaudintis dėl kodo fragmentų susiejimo su dialogo lango elementais. VBA tai daro už jus. Vartotojui spustelėjus teksto laukelį arba mygtuką Gerai, VBA automatiškai paleidžia teisingą kodo fragmentą.

Spustelėkite Atšaukti

Norėdami susieti mygtuką „Atšaukti“ su ištrauktu VBA kodu, atlikite šiuos veiksmus:

  1. Dukart spustelėkite Atšaukti mygtuką. Atkreipkite dėmesį, kad pasirodo į modulį panaši forma ir kad ji yra iš dalies užpildyta.
  2. Pridėkite komandą, kad uždarytumėte dialogo langą:
    Galas
  3. Jūs baigėte!
  4. Na, tai dar ne viskas. Vis tiek turite išbandyti, ar mygtukas Atšaukti iš tikrųjų veikia. Štai kaip:
    1. VBA įrankių juostoje spustelėkite Bėk mygtuką. Atkreipkite dėmesį, kad dialogo langas rodomas BricsCAD.
    2. Pabandykite spustelėti elementą, išskyrus mygtuką „Atšaukti“, pvz., Mygtuką Gerai. Nieko nevyksta, nes prie jo nėra pririštas kodas.
    3. Spustelėkite Atšaukti. Dialogo langas turėtų išnykti. Taip, tai veikia!

Greita VBA DUOMENŲ TIPŲ SANTRAUKA

Duomenų tipas Komentuok Svyruoja nuo Kam
Baitas 0 255
Būlio Tiesa Klaidinga
Sveikasis skaičius -32,768 32,767
Ilgas Ilgas sveikasis skaičius -2,147,483,648 2,147,483,647
Vienišas Vieno tikslumo plūduriuojantis taškas -3.402823E38 -1,401298E-45 (neigiamos vertės)
1.401298E-45 3.402823E38 (teigiamos vertės)
Dviguba Dvigubo tikslumo plūduriuojantis taškas -1.79769313486231E308 -4.94065645841247E-324 (neigiamos vertės)
4.94065645841247E-324 1.79769313486232E308 (teigiamos vertės)
Dešimtainiai skaičiai +/- 79 228 162 514 264 337 593 543 950 335 (be kablelio)
+/- 7.9228162514264337593543950335 (28 skaitmenys po kablelio)
+/- 0.000000000000000000000000000001 (mažiausias nulio skaičius)
Data 100 sausio 1 d 9999 m. Gruodžio 31 d
Valiuta Mastelis sveikasis skaičius -922,337,203,685,477.5808 922,337,203,685,477.5807
Eilutė Kintamo ilgio 0 maždaug 2 milijardai simbolių
Fiksuoto ilgio 1 maždaug 65 400 simbolių
Variantas Skaičiai Bet kokia skaitinė vertė iki dvigubo
Personažai Tas pats kaip kintamo ilgio eilutė
Objektas Bet kokia objekto nuoroda
Vartotojo apibrėžta Tas pats diapazonas kaip ir jo duomenų tipas.

GREITA VBA DUOMENŲ TIPO GRĄŽINIMO VERTYBIŲ SANTRAUKA

Pastovus Vertė Aprašymas
vbTuščias 0 Tuščias arba neinicijuotas
vbNull 1 Nėra jokių galiojančių duomenų arba jų nėra
vbInteger 2 Sveikasis skaičius
vbLong 3 Ilgas sveikasis skaičius
vbVienas 4 Vieno tikslumo slankiojo kablelio skaičius
vbDvigubas 5 Dvigubo tikslumo slankiojo kablelio skaičius
vbCurrency 6 Valiutos vertė
vbData 7 Datos vertė
„vbString“ 8 Eilutė
vbObject 9 Objektas
vbKlaida 10 Klaidos vertė
vbBoolean 11 Bulio reikšmė
vbvariantas 12 Variantas (masyvas)
„vbDataObject“ 13 Prieigos prie duomenų objektas
vbDešimtainis skaičius 14 Dešimtainė vertė
vbByte 17 Baitų vertė
„vbUserDefinedType“ 36 Variantas (vartotojo apibrėžti tipai)
vbArray 8192 Masyvas (Array)

Greita VBA styginių manipuliavimo santrauka

Raktažodis, operatorius Komentuok
Asc, Chr Pasiekia ASCII ir ANSI reikšmes
Formatas, mažosios ir mažosios raidės Konvertuojamas į mažąsias arba didžiąsias raides
Formatas Formatuoja eilutes
„InStr“, kairė, „LTrim“, „Mid“, „Len“ Randa stygų ilgius
LSet, Rset Pagrindžia eilutę kairėn arba dešinėn
Variantas Palyginti Nustatomos eilutės palyginimo taisyklės
Teisingai, RTrim, „Trim“ manipuliuoja stygomis
Erdvė, stygos Sukuria pasikartojančių simbolių eilutes
StrComp Palygina dvi eilutes
StrConv Konvertuoja eilutes
& Sujungia stygas

Greita VBA PROGRAMOS KOMPONENTŲ SANTRAUKA

Projektai saugo makrokomandas. (LISP vadina šias programas.)

Makrokomandos nurodo VBA programavimo kodo dalis. (LISP vadina šias „funkcijas“.) VBA makrokomandas galima įterpti (išsaugoti brėžiniuose) arba įrašyti į .dvb failus diske.

Reaktoriai yra makrokodo dalys, reaguojančios į piešinio įvykius, tokius kaip išsaugomas piešinys, objektas, pridėtas prie piešinio ar vartotojas, spustelėjęs pelės mygtuką.

Formos nurodo vietą, kur sukurtas VBA kodas. Dažnai formos atrodo kaip dialogo langai.

Valdikliai nurodo elementus formose, pvz., Žymės langelius ir sąrašus.

Klasės yra objektų apibrėžimai. Pavyzdžiui, „AcadLine“ yra klasė, apibrėžianti eilutės esmę.

Objektai reiškia klases, suskirstytas į formas. Objektai gali turėti šiuos atributus:

  • Ypatybės, apibūdinančios objektą, pvz., Jo spalva, aukštis ir plotis.
  • Metodai, modifikuojantys objektus, pavyzdžiui, jų kopijavimas ir pasukimas.
  • Įvykiai, pranešantys, kai modifikuojami objektai.

Greita VBA komandų BRICSCAD santrauka

Su VBA susiję komandų pavadinimai rodomi žemiau paryškintu šriftu, o lygiaverčiai meniu pavadinimai rodomi skliaustuose.

Meniu elementus galite pasiekti iš įrankių | VBA meniu.

„Vba“ („Visual Basic for Applications“) atidaro VB redaktorių, skirtą makrokomandoms rašyti ir derinti.

„VbaRun“ (makrokomandos) įkelia ir paleidžia VBA makrokomandas; rodomas dialogo langas Makrokomandos ir pateikiami dabartiniame brėžinyje saugomų VBA makrokomandų pavadinimai.

„VbaNew“ (naujas projektas) nurodo naujo VBA projekto failo pavadinimą.

„VbaLoad“ (įkelti projektą) įkelia .dvb VBA projekto failus; rodomas dialogo langas Atidaryti.

-VbaLoad komanda įkelia .dvb projekto failus komandų eilutėje.

„VbaMan“ (projekto vadovas) rodo dialogo langą „VBA Manager“.

„AddInMan“ („Add-in Manager“) nurodo programas, kurias galima įkelti į BricsCAD, ir kontroliuoja, kaip jos įkeliamos; rodomas „Add-In Manager“ dialogo langas.

(BricsCAD nepalaiko „VbaStmt“; jos paskirtis kitose programose yra įkelti ir paleisti makrokomandas komandų eilutėje.)

„LastInput.Dvb“

Įžengę į VBA programavimą, tęskime ir nagrinėkime visiškai užkoduotą programą. Žemiau yra dialogo langas Paskutinis įvestis, o priekiniame puslapyje - VBA kodas
skirta „LastInput.Dvb“. Kituose puslapiuose pakomentuoju kodo dalis.

Pagrindinė projekto dalis parodyta spalvota; kiti moduliai yra tarsi paprogramės, palaikančios pagrindinį modulį. Pridėjau eilutes prie vizualiai atskirų modulių ir turiu spalvų kodą
modulių pavadinimus, kad galėtumėte juos susieti.

Šį VBA kodą sukūrė Ferdinandas Janssensas, „Bricsys“ programuotojas.

Konversijos rutina

VBA nebuvo suprojektuota atsižvelgiant į CAD, todėl ji lengvai netvarko vektoriniams brėžiniams būdingų koncepcijų, tokių kaip 2D ir 3D taškų apdorojimas. Kaip ir LISP, VBA turi atskirti koordinačių tripletus ir tada juos derinti kaip eilutes.

Dvi iš p. Janssenso programos konversijos tvarkos yra naudingos bet kokiam VBA programavimui su BricsCAD. Tai yra šie:

  • „PointToString“ uždengia 3D taškus (x, y, z koordinates) prie eilučių, tokių kaip 3,2,1 - „3“, „2 ″,„ 1 ″.
  • „StringToPoint“ uždengia eilutes iki 1D, 2D ar 3D koordinačių taškų, tokių kaip „3“, „2 ″,„ 1 ″ iki 3,2,1.

Atvirai kalbant, esu nustebęs, kiek kodo reikia VBA norint pridėti ir pašalinti kabutes iš vieno, labiausiai paplitusio, CAD duomenų tipo. Geros naujienos yra tai, kad parašę šias dvi tvarkas, galėsite jas vėl naudoti kitose VBA programose.

Čia yra aprašymai, kaip jie veikia.

POINTTOSTRING CONVERSION FUNKCIJA

„PointToString“ rutina prideda kabutes prie kiekvienos koordinatės, kad jas iš tikrųjų skaičių paverstų eilutėmis. Pavyzdžiui, 3.4,2,0 tampa „3.4“, „2 ″,„ 1 ″. Tai atrodo taip:

Privati funkcija „PointToString“ („vIn.“ Kaip variantas) Kaip styginis

Dim sPt Kaip styginis: sPt = vbNullString     Dim

„iPrecision“ Kaip sveikasis skaičius

„iPrecision“ = ThisDrawing.GetVariable („LUPREC“)

Jei „VarType“ (vIn) > vbArray Tada

sPt = StringFromValueFixedDecimal (vIn (0), iPrecision) ir „,“

sPt = sPt & StringFromValueFixedDecimal (vIn (1), iPrecision) ir „,“

sPt = sPt & StringFromValueFixedDecimal (vIn (2), „iPrecision“)

Pabaiga jei

„PointToString“ = sPt

Pabaigos funkcija

(VBA raktiniai žodžiai rodomi paryškintas šriftas.)

Panagrinėkime, kaip veikia šis kodas, eilutė po eilutės.

Privačios funkcijos „PointToString“ („vIn“ variantas) kaip eilutė

Privatus reiškia, kad funkciją galima pasiekti tik šiame modulyje. Tai yra maždaug analogiška LISP praktikai, kai kintamųjų pavadinimai dedami po pasvirojo ženklo, kad jie būtų lokalūs, pvz., (Defun function (/ vaname)).

Funkcija nurodo vardą, argumentus ir kodą. Tai panašu į defun funkcija LISP.

„PointToString“ yra funkcijos pavadinimas.

vIn yra argumento kintamojo pavadinimas (vIn yra „variantinis įvestis“). Šio kintamojo tikslas yra gauti argumentą, perduotą šiai funkcijai, kai jis apdorojamas.

Kaip deklaruoja argumento duomenų tipą.

Variantas yra duomenų tipas, o tai reiškia, kad funkcija yra visiškai lanksti, kai kalbama apie duomenų tipus, dirbant su skaičiais, tekstu ir masyvais.

Kaip styginis reiškia, kad funkcijos išvestis yra kintamo ilgio eilutė.

Apibendrinant, ši kodo eilutė apibrėžia vietinę funkciją pavadinimu „PointToString“, kuri tikisi skaičių ar teksto kaip įvestį, o tada grąžina tekstą.


Greita VBA iš anksto nustatytų pastoviųjų santrauka

Pastovus Vertė Komentarai
vbCrLf Chr (13) + Chr (10) Vežimas-grįžimas, linijinis tiekimas
vbCr Chr (13) Vežimas-grįžimas
vbLf Chr (10) Linijinis tiekimas
vbNewLine Chr (13) + Chr (10) Naujas eilutės simbolis (\ n)
vbNullChar Chr (0) Simbolis, kurio vertė 0
vbNullString 0 Eilutė, kurios vertė 0; naudojamas išorinėms procedūroms
„vbObjectError“ -2147221504 Didesnės vertės yra vartotojo apibrėžti klaidų skaičiai
vbTab Chr (9) Skirtukas (\ t)
vbGrįžti Chr (8) „Backspace“

„Dim sPt“ kaip eilutė: sPt = vbNullString

Dim yra labiausiai paplitęs kintamųjų pavadinimų deklaravimo būdas. Skirtingai nuo LISP, VBA turi iš anksto žinoti kintamųjų pavadinimus ir jų duomenų tipus. Nors patyrusiems LISP programuotojams deklaracijos atrodo nereikalingas papildomas darbas, ši prieš laiką pateikiama deklaracija yra vienas iš būdų, kaip VBA rutina veikia greičiau nei parašyta LISP.

sPt yra kintamojo pavadinimas (sPt yra „stygos taškas“.

Kaip yra duomenų tipų deklaravimo raktinis žodis.

Eilutė yra duomenų tipas.

: (dvitaškis) rodo eilutės etiketės pabaigą. sPt suteikiama pradinė vertė:

vbNullString yra viena iš VBA iš anksto nustatytų konstantų - lygiai taip pat, kaip pi iš anksto nustatyta kaip 3,1431 ... LISP. „VbNullString“ vertė yra 0 (ne tokia pati kaip nulio ilgio eilutė „“). Tai daroma taip, kad dialogo lange iš pradžių būtų rodoma 0, kai „LastPoint“ nėra nieko.

Apibendrinant, ši kodo eilutė apibrėžia kintamąjį pavadinimu „sPt“ ir priskiria jam 0 reikšmę.

„Dim iPrecision as Integer“

„iPrecision“ yra kito kintamojo pavadinimas (trumpinys „sveikasis skaičius“). Jo tikslas yra nurodyti dešimtųjų skaičių, kurį naudoja ši funkcija.

Kaip sveikasis skaičius apibrėžia jo duomenų tipą kaip sveikąjį skaičių, nes sveikas skaičius yra pakankamai didelis, kad būtų galima laikyti dešimtųjų skaičių, kuris BricsCAD svyruoja nuo 0 iki 8.

Apibendrinant, ši kodo eilutė apibrėžia kintamąjį, pavadintą „iPrecision“.

„iPrecision“ = ThisDrawing.GetVariable („LUPREC“)

TaiPiešimas yra VBA būdas pasiekti duomenis iš dabartinio piešinio - nereikia žinoti jo pavadinimo.

„GetVariable“ gauna sistemos kintamųjų vertę ir gauna dabartinio piešinio vertę.

Tai panašu į LISP funkcijos (getvar) naudojimą.

  LuPrec“Yra sistemos kintamojo, kuriame saugoma dabartinio tiesinio vieneto tikslumo vertė (kaip nustatyta dialogo lange Nustatymas), pavadinimas. „LuPrec“ yra BricsCAD vardas ir neturi nieko bendro su VBA; tai reiškia, kad galite naudoti tą pačią kodo eilutę, kad pasiektumėte bet kurio sistemos kintamojo vertę, įskaitant unikalius BricsCAD.

Apibendrinant, ši kodo eilutė gauna sistemos kintamojo „LuPrec“ vertę ir išsaugo ją „iPrecision“.

Jei „VarType“ (vIn) > vbArray Tada

Jei pradeda įprastą sprendimų priėmimo konstruktą, esantį visose programavimo kalbose. (Jei jie neturi „jei-tada“ konstrukcijos, tada jie nėra programavimo kalbos.) Šiuo atveju, jei patikrina vIn vertę.

VarType yra funkcija, kuri nustato kintamųjų duomenų tipą. Jis pateikia sveikąjį skaičių, nurodantį duomenų tipą. Žinodami duomenų tipą, galite atlikti kitus su jais susijusius darbus. Šiuo atveju jis patikrina „vIn“ duomenų tipą.

> yra didesnė už funkciją.

vbArray yra dar viena VBA konstanta; šis turi reikšmę 8192. Tačiau masyvo tipai visada pateikia didesnę nei 8192 vertę, kad būtų galima pranešti apie masyvo tipą. Masyvą gali sudaryti skaičiai, tekstas, loginės reikšmės ir pan. Mūsų programoje masyvas yra koordinačių tripletas, pavyzdžiui, 1,2,3.

Apibendrinant, ši kodo eilutė patikrina, ar „vIn“ duomenų tipas yra masyvas. Tiksliau, klausiama: „Ar vIn vertė yra didesnė nei 8192? Jei taip, tada tai yra masyvas ir apdorojimas gali tęstis “.

sPt = StringFromValueFixedDecimal (vIn (0), iPrecision) ir „,“

StringFromValueFixedDecimal yra vartotojo apibrėžta funkcija, kuri dešimtainį skaičių paverčia eilute, o tada imituoja dešimtainių taškų skaičių. (Jis išvardytas šiek tiek vėliau „LastPoint.Dvb“ programa.) Ji tikisi dviejų argumentų: dešimtainio skaičiaus ir tikslumo (ty rodomų dešimtainių taškų skaičiaus).

„vIn“ (0) išskiria pirmąją masyvo vIn vertę. Taip, VBA 0 laiko #1, kaip ir LISP. Jei vIn yra 3,2,2,0, tada išgaunamas 3,2.

„iPrecision“ nurodo dešimtainių taškų skaičių. Pavyzdžiui, yra vIn (0) yra 3,2, tada tai
funkcija pakeičia į „3.2000“ (kai „iPrecision“ yra 4) arba į „3“, kai „iPrecision“ yra 0.

& yra VBA funkcija, sujungianti (susiejant) eilutes - tokia pati kaip ir
„StrCat“ funkcija LISP.

“, “ yra susieta su styga, todėl sPt turi reikšmę
“3.2000, “.

Apibendrinant, ši kodo eilutė konvertuoja pirmąjį koordinačių masyvo elementą į eilutę su fiksuotu skaičiumi po kablelio, tada prideda kablelį ir tarpą.

sPt = sPt & StringFromValueFixedDecimal (vIn (1), iPrecision) ir „,“

Ši kodo eilutė yra identiška pirmiau pateiktai, tačiau turi du skirtumus:

sPt = sPt & susieja esamą sPt vertę („3,2000,“) su antrąja reikšme, išgauta iš masyvo.

StringFromValueFixedDecimal (vIn(1) išskiria antrąjį elementą iš masyvo.

Apibendrinant, ši kodo eilutė konvertuoja antrąjį koordinačių masyvo elementą į eilutę ir tada sujungia jį į pirmąjį elementą. sPt dabar turi „3.2000, 2.0000“. Galite pradėti matyti, kaip skaitinis masyvas pavieniui paverčiamas į eilutę.

sPt = sPt & StringFromValueFixedDecimal (vIn (2), „iPrecision“)

Procesas kartojasi, o sPt dabar laiko eilutę „3.2000, 2.0000, 0.000“.

Pabaiga jei

Galas nurodo skyriaus pabaigą.

Jei nurodo teiginio „if-then“ pabaigą. Jei „vIn“ nebūtų buvę masyvas, tai įprasta būtų praleidusi ankstesnes tris kodo eilutes ir šokusi čia. Ar galite atspėti, kokia vertė šiuo atveju būtų sPt?

„PointToString“ = sPt

SPt reikšmė priskiriama „PointToString“, kur ją galima pasiekti bet kuria kita kodo eilute. (Jei „vIn“ nebūtų masyvas, sPt reikšmė būtų 0.)

Pabaigos funkcija

Galas nurodo modulio pabaigą.

 Funkcija rodo, kad funkcija baigėsi. Kadangi tai yra paprogramė, „PointToString“ vertė dabar grąžinama į pagrindinę kodo dalį, kur ją naudoja šis sakinys:

Me.txtLastPoint.Text = PointToString (vLastpoint)

GYVENAMOSIOS KONVERSIJOS FUNKCIJA

„StringToPoint“ rutina pašalina kabutes iš kiekvienos eilutės, kad paverstų ją realiuoju skaičiumi. Pavyzdžiui, „3,4, 2, 0“ tampa 3,42,0. Kai kurie kodai bus jums žinomi iš viršaus.

Privati funkcija „StringToPoint“ („sIn.“ Kaip styginis) Kaip variantas

Dim „sCoords“ () Kaip styginis: sCoords = Strings.Split (sIn, „,“)

Dim tmpPt (nuo 0 iki 2) Kaip dvigubai

Jei UBound (sCoords) = 0 Tada

tmpPt (0) = Val (sCoords (0))

Kitu atveju UBound (sCoords) = 1 Tada

tmpPt (0) = Val (sCoords (0))

tmpPt (1) = Val (sCoords (1))

Kitu atveju UBound (sCoords) = 2 Tada

tmpPt (0) = Val (sCoords (0))

tmpPt (1) = Val (sCoords (1))

tmpPt (2) = Val (sCoords (2))

Pabaiga jei     „StringToPoint“ = tmpPt

Pabaigos funkcija

Panagrinėkime, ką daro šis kodas:

„Dim sCoords“ () kaip eilutė: sCoords = Strings.Split (sIn, „,“)

Dim sCoords () kaip styginis apibrėžia kintamąjį „sCoords“ (rūšiuoti „eilutės koordinatėms“) ir priskiria duomenų tipą „String“.

Padalinimo padalija eilutę į vienmatį masyvą su nurodytu skaičiumi pakraščių.

“,” nurodo atskyriklį, kuris nurodo Split, kur reikia padalyti. Tokiu atveju tokia eilutė kaip „3.4, 2, 0“ tampa „3.4“, „2“ ir „0“.

Jei UBound (sCoords) = 0, tada

UBound praneša apie masyvo dydį. Tai naudinga nustatant, ar funkcija susijusi su 2D koordinatėmis (2 elementų masyvu), ar su 3D, trijų elementų masyvu.

tmpPt (0) = Val (sCoords (0))

Val paverčia eilučių skaičius kaip skaitinę vertę. Trumpai tariant, „3.4“ tampa 3.4.

Šį paprogramį naudoja funkcija txtLastPoint_BeforeUpdate.

LASTINPUT.DVB KROVIMAS IR VYKDYMAS

Galite atsisiųsti „LastInput.Dvb“ failą iš mano „Dropbox“ paskyra.

Norėdami įkelti programą, atlikite šiuos veiksmus:

  1. Pradėkite BricsCAD.
  2. Nuo Įrankiai meniu, pasirinkite VBAir tada pasirinkite Įkelti projektą.
  3. Dialogo lange Atidaryti pasirinkite „LastPoint.Dvb“ ir spustelėkite Atviras. Dabar programa yra įkelta į BricsCAD.
    (Jei pasirodo dialogo langas Sauga, pasirinkite Žemas, tada spustelėkite OK.)

Norėdami paleisti programą, atlikite šiuos veiksmus:

  1. Nuo Įrankiai meniu, pasirinkite VBAir tada pasirinkite Makros.
  2. Dialogo lange Vykdyti BricsCAD VBA makrokomandą pasirinkite „Module1.main“.
  3. Spustelėkite Bėk.
    Atkreipkite dėmesį, kad pasirodys dialogo langas Paskutinis įvestis. Jei piešinys yra visiškai naujas (nėra jokių objektų brėžinių), tada laukai pateikia 0.
  4. Norėdami pamatyti dialogo langą darbe, paleiskite komandą „Linija“ ir tada nubrėžkite kelias eilutes. (Šis dialogo langas yra nemodelinis, vadinasi, jis gali likti atidarytas net ir vykdant kitas komandas naudojant BricsCAD.)
  5. Spustelėkite Atnaujinti norėdami pamatyti dialogo langą pranešdami apie paskutinio taško, kampo ir eilutės reikšmes.
  6. Norėdami pakeisti paskutinio taško vertę, paryškinkite koordinates ir įveskite skirtingas x, y ir z reikšmes.
  7. Baigę spustelėkite OK. Dialogo langas dings.
  8. Paspauskite Esc atšaukti komandą Linija.
PATARIMAS Norėdami įtraukti VBA projektą į įrankių juostą arba meniu makrokomandą, naudokite komandą -VbaRun, tada nurodykite makrokomandos pavadinimą kaip argumentą.

Greita VBA KINTAMŲ DEKLARACIJŲ SANTRAUKA

Deklaracija Komentarai
Dim Numatytasis kintamųjų deklaravimo metodas:
Kai procedūros metu pasirodo Dim, galima naudoti kintamąjį
tik procedūros metu
Kai modulio deklaracijų skyriuje pasirodo Dim, kintamasis yra prieinamas visoms modulio procedūroms, bet ne
kiti moduliai projekte
Viešas Padaro kintamuosius prieinamus visoms visų modulių projekto procedūroms
Privatus Apriboja kintamuosius, kad būtų naudojami tik to paties modulio procedūros
Statinis Kintamieji išlaiko savo vertes tarp skambučių
Variantas aiškus Visi kintamieji turi būti aiškiai deklaruoti modulyje

Greita VBA trumpalaikių nuorodų santrauka

Terminas Komentarai
Tai Nurodo esamą arba aktyvų BricsCAD dokumentą
Padaro kintamuosius prieinamus kiekvienai klasės modulio procedūrai. Naudojama, kai klasėje yra daugiau nei vienas egzempliorius, nes „Me“ nurodo klasės egzempliorių šiuo metu vykdomame kode

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
  24. Paprastos LISP programos rašymas
  25. 7 LISP programavimo patarimai
  26. Dialogo dėžių su DCL projektavimas