E++, Custom EdingCNC Editor

Nederlandse CNC controller op basis van de usb poort of Ethernet.

Moderator: Moderators

Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Leeuwinga schreef: 15 okt 2023 16:06 ach, goede wijn duurd ook even....
NIet altijd.. een Beaujolais Primeur, een Weskaap Eersteling of een Federweißer komen nog hetzelfde jaar op de fles.. :lol:

Hoe staat het eigenlijk met DeskCNC?.. daar hoorde ik je vroeger nog wel eens over.. dat het zo geweldig was..
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 12054
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door hugo stoutjesdijk »

Arie Kabaalstra schreef: 15 okt 2023 14:47 Zo gaat het zo zoetjes aan meer en meer op een professionele programmeeromgeving lijken..
Kortom... bijna klaar.. :lol:
En als het dan straks klaar is, wat dan?
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Dan heb ik in elk geval een programmeeromgeving waarmee ik mijn machines makkelijker kan programmeren, en ik denk eraan om het net als EdingCNC te verspreiden, dus éénieder die zelf wat macrootjes in elkaar kan flanzen, en daar dialogen voor kan schrijven, kan dan hetzelfde bereiken als ik.

Wil je speciale macro's, dan moeten we daar even over bomen.. wat wil je, en wat wil je daar aan uitgeven?
En dan denk ik met name aan bedrijven die nu met Cam zitten te rommelen voor de eenvoudigste werkstukjes..

Versie 1.0 staat al een tijdje online op Github, deze versie zal daar ook wel verschijnen..
Leeuwinga
Berichten: 2989
Lid geworden op: 29 apr 2007 15:00
Locatie: Roden
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Leeuwinga »

Hoe staat het eigenlijk met DeskCNC?.. daar hoorde ik je vroeger nog wel eens over.. dat het zo geweldig was..
Is nog steeds geweldig, vele gebruikers die dit nog steeds met plezier gebruiken.
Gebruikersavatar
andrefc101
Donateur
Berichten: 3733
Lid geworden op: 26 dec 2007 08:39
Locatie: Bergen op Zoom
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door andrefc101 »

Leeuwinga schreef: 16 okt 2023 15:49 Hoe staat het eigenlijk met DeskCNC?.. daar hoorde ik je vroeger nog wel eens over.. dat het zo geweldig was..
Is nog steeds geweldig, vele gebruikers die dit nog steeds met plezier gebruiken.
Kan E++ daar ook niet in dan, wordt het nog beter!
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

als je in DeskCNC Parametrisch kan programmeren, en er Macro's in kan maken.. dan kan het..

Ik ben inmiddels weer een stukkie verder.. Ik kan profielen laden, nieuwe profielen aanmaken, Bestanden worden weer keurig opgeslagen.
Eigenlijk is het zo dat ik de hele Profielenbende in een Testapplicatie heb geschreven, en nu uit een ontwikkelversie van E++ de GUI heb gekopieerd, en toen de Iconen van de toetsen er weer ingezet, en als er geen Iconenfolder in het profiel staat, dan laadt ie de "default Iconen"
Hoop werk..
Nu kan ik de komende tijd de Syntaxmarkering er in "overhevelen" vanuit V1.0 en dan moet het wel zo'n beetje klaar zijn..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Afbeelding

Zo.. de CNCZONE.NL meeting komt eraan, dus even stevig Doorknopselen.. Het Setup gedeelte is nog niet af, dat is een deel dat me zo nu en dan de haren in mijn bilnaad ten berge doet rijzen, maar!
de Dialogen werken!.. dat is vooralsnog het belangrijkste.

Immers!, er zijn wat dingen veranderd: door verder opgedane kennis van C# kan ik nu middels de "Edit" softkey in EdingCNC E++ weer naar de voorgrond halen, ook heb ik er nu een Single Instance Applicatie van weten te maken, dat wil zeggen, als je het al opgestart hebt, dan kun je em niet NOG een keer opstarten, in plaats daarvan komt de reeds draaiende instantie weer naar de voorgrond.
Da's mooi, want dat betekent dat ik de FileWatcher er uit heb kunnen gooien, omdat ik die niet meer nodig heb om E++ naar de voorgrond te halen, en dat maakt ook dat je daar geen UserSub meer voor hoeft te misbruiken!.
Dat de Dialogen Nu ook in E++ zitten.

Hoe maak je dan die Dialogen aan in E++?
wel.. Vrij eenvoudig.. net zo eenvoudig als in EdingCNC:

Code: Selecteer alles

[Dialog 1]
DLGMSG "FACING" "X"1001 "Z"1003 "FEED"4001 "DOC"4002 
#3999=1
[Dialog 2]
DLGMSG "TURNING" "X"1001 "Z"1003 "FEED"4001 "DOC"4002 
#3999=2
[Dialog 3]
DLGMSG "CHAMFER" "X1" 1001 "Z1" 1003 "X2" 1011 "Z2" 1013 "FEED" 4001 "DOC" 4002 "DIRECTION" 3999
#3999=3
hier een stukje van de File "DLG.TXT" waar je volgens bovenstaande structuur je Dialogen in schrijft.. Dialog 1 is gekoppeld aan de "Cycle 1" knop in E++, net als in EdingCNC de User Functions aan de Overeenkomstige F-Toetsen zitten..
Verder, het zal sommigen al opgevallen zijn, schrijf je de dialogen op dezelfde manier als in EdingCNC.. dat wil zeggen dat je de Dialogen uit je Macro zo naar DLG.TXT kan Kopieplakselen, (je zou er dus voor kunnen kiezen een bestandje aan te maken na een Dialoog in EdingCNC om ze direct uit te voeren, zonder er eerst een programma voor te moeten schrijven, zodat je machine gewoon vanaf het huidige punt, met het huidige gereedschap een Cyclus uitvoert.. als je alleen maar even wat moet vlakken, een gaatje moet boren , of iets van die strekking.
Of.. je gebruikt dezelfde DIaloog in E++, maar dan in een programma..

het enige verschil is, dat er bij de DIalogen in E++ een Extra parameter staat, die NIET in de dialoog wordt gevraagd, die gebruik ik voor de identificatie van de aan te roepen Subroutine in de Macro, E++ Zet em er wel bij in het programma, met de omschrijving "CYCLE INDEX".

de komende dagen nog even wat icoontjes maken voor de Cycli, en nog wat zaken in E++ "opnetteren" zoals de weergave van de gekozen machinenaam in de bovenbalk, het wegpoetsen van dingen die niet zichtbaar hoeven te zijn, en het instellen van "Notificaties", de Tabbladen maak ik ook nog even onzichtbaar..

Omdat ik ook nog met een flinke Designklus bezig ben voor een ander Nederlands horlogemerk, gaat dit project even op een wat lager pitje, maar ik blijf er wel aan werken.. eerst maar eens grote schoonmaak houden, en niet werkende testversies verwijderen.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Even de puntjes op de Ö..
25019

van links naar rechts, EdingCNC, Pokeys Configurator, Visual Studio, NotePad++ en de Manual van EdingCNC

ik moest even wat "vliegen afvangen" sneltoetsen die in EdingCNC werken, maar in E++ wel eens gekke dingen kunnen gaan doen.. zoals Ctrl/Alt/Shift/E, in EdingCNC ga je daarmee naar het "AUTO" Menu, in E++ gooit ie É in de Code.. da'hoortnie!
Dus.. moest ik even in de Code duiken om dat af te vangen zonder dat ie rare karakters in de code gaat strooien..

25018

Dus.. kon ik met een gerust hart die "lastige" Shortcuts in dit toetsenbord programmeren, het gaat vooral om het "blok" van 10 Toetsen Rechtsonder.
Bovenste rij: Cycle Start (in EdingCNC), Cyclusdefinitie (in E++), Subroutine invoegen (in E++), Gereedschapsoproep (in E++), G00 (in E++)
Onderste rij: CYcle Stop (in EdingCNC), Cyclusaanroep (in E++), Subroutine aanroep (in E++), Feed Overide - (in EdingCNC), Feed Override + (in EdingCNC)

25017

Ook heb ik wat "pointers" toegevoegd, bij sommige Codes geeft ie bovenin het scherm nu aan wat die Code doet.
Omdat mijn Draaibank macro wel zo'n beetje kompleet was, zit die er nu in.. de Macro voor de Freesbank moet "even op de schop"

Verder.. is de huidige versie slechts een "Devellopment version..
er zijn nog wat kleine dingetjes, die moet ik er nog uitfilteren.. maar voor komend weekend..

25020

Moet die het wel doen..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Sinds de CNCzone Meeting ben ik weer druk bezig geweest met E++.
Ik heb de hele Setup bende opnieuw geschreven, ditmaal met gebruikmaking van een klasse "CNC" met daarin het Object "Machine".
die "Machine" heeft een reeks "properties" zoals .Name, .CNC_ID, .ToolBox, en zo verder.. tijdens het selecteren van een bepaalde machine wordt de MacFile ingelezen, en worden de properties toegewezen.

Dit is een stuk overzichtelijker voor mij in plaats van de vorige versie die gebruik maakte van lijsten, en als je één keer de Index verkeerd had, dan stonden de gegevens van de ene machine ineens in de INI File van een andere.. en da's nie handig zeg maar.. :lol:

Nu bezig om alle "slodrigheidjes" weg te werken.. zoals, als een Dialoog om een plaatje vraagt wat er niet is, dan wordt het standaard plaatje getoond.
de Tooltabel heb ik iets anders ingedeeld als in EdingCNC, Immers.. de belangrijkste dingen volgens mij in elk geval zijn niet de Delta Waarden, die staan dus achteraan.. Vooraan staan het Toolnummer, de Naam, de X en Z Offset en de Orientatie.. Misschien gooi ik er nog een plaatje bij die de Orientatie toont.. moet ik nog even over nadenken.. mogelijk kan dat in de Komende release 3.0, anders komt het in Release 3.1.

een ander ideetje is een ScreenKeyboard, dat je in staat zal stellen om snel Coordinaten, en G-Codes in te voeren.. even kijken hoeveel ruimte ik daarvoor nodig heb.

Ook wil ik nog even stoeien met de Dialoogplaatjes, dat de verhouding gelijk blijft.. voor mensen met een breedbeeld op hun machine, anders ziet't er zo raar uit...

in de Code ben ik ook bezig met de Kleurcoderingen aan te pakken.. in plaats van de kleur geeft ik nu de Functie aan.. zodat ik snel kan zien welke functie welke kleur heeft..

Afbeelding

Ik heb ook even de kleurkaart gedownload..

Verder... nog wat functies overkopiëren van de Vorige versie, zoals het hele Bestandsgebeuren, en de profielkeuze wat opnetteren.. als je maar 1 profiel hebt.. dan wordt die automagisch geladen, heb je er 2 of meer, dan start E++ op met de Setup Pagina, waar je dan een profiel kan kiezen, en met F12 naar de E++ Editor door kan schakelen..

Zo zoetjes aan begint het meer en meer vorm te krijgen.. en wat krijgen we dan?
E++ is meer dan een "Editor" het is meer een Vervolg op de Shopfloorprogrammer, een Programmeermethode die ik uitgedokterd heb, en waar Niels Saarloos toen mee aan de slag is gegaan..
E++ is een Shopfloor programming environment, en door de koppeling van E++ met EdingCNC is het vergelijkbaar met een IDE zoals Visual Studio, 't geeft alleen nog geen foutmeldingen als je ongeldige Code inklopt, maar voor eenvoudige programma's hoef je ook geen heel moeilijke code zelf te kloppen.. G00 en G01.. daar houdt het wel zo'n beetje mee op, en uiteraard moet je wel je spindel aan en uit zetten, en eventueel ook de Koeling.
Zelf heb ik dan nog allerhande Codes voor bijvoorbeeld de Gereedschapwisselpositie die ik vastleg met M100, en naar dat punt terugga met M101.

Wat kun je er verder mee?... nou.. dat hangt van je eigen creativiteit af, Ik kan bijvoorbeeld met M33, M34, M36 en M37 polen vastleggen, en Lineair en Circulair polair positioneren en die regels.. kan ik in 1 van de 13 "Custom Codes" zetten, en met 1 druk op de knop invoegen..
Ik zou dus M33 X Y Z in een CustomCode bestandje kunnen zetten.., één druk op de knop en het staat erin.. je vult in wat nodig is, en je haalt weg wat je niet nodig hebt..
(er moet ook een mogelijkheid zijn om voorspellende code te maken.. maar hoe dat werkt, daar ben ik nog niet uit.. da's voor een latere versie..)
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Vandaag.. omdat het Pasen is.. ben ik weer eens een "Ei" aan het uitbroeden. iets wat ik al langer wilde, maar nog niet voor elkaar kreeg..

Maar!.. dat heb ik nu in een "probeerapplicatie" voor elkaar!.. Wat is het?.
Automatische CodeFolding..

Wat doet het?.. Zoals een aantal mense hebben kunnen zien, heeft E++ "Code Folding" iets wat in NotePad++ ook al bestaat, en in veel andere Code-Editors ook.. Dat je bepaalde stukken Code in kan vouwen..
in E++ zijn de CyclusDefinities soms behoorlijke lappen tekst.. en als je daar niet in Bezig bent.. waarom zou je ze uitgeklapt laten?

Dus!.. en ook want, daarom!

25174

Standaard weergave..

25175

Maar.. zodra je de regel boven ";CYCLE"selecteert, klapt de onderstaande Cyclus Automagisch open.. iets wat ik (eerlijk is eerlijk) afgekeken heb van Heidenhain..
Dat maakt dat als je je programma gaat bewerken, dat de Cyclus waar je aan werkt uitklapt, en de rest blijft dicht..Nu ik dat trucje doorheb, moet ik het nog even wat "opnetteren" want als je op de regel boven een Cyclus staat, dan klapt ie uit.. maar als je dan naar boven gaat.. dan moet ie weer dichtklappen.. anders.. blijft alles open staan als je omhoog gaat door je programma.. en da's hoort nou net nie!
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Even wat zitten "Gefingerpoken", en het begint er op te lijken dat ik het voor elkaar heb...

'k heb het nu zo gemaakt dat als alle Cycli dichtgevouwen zijn, de "Default Situatie" , en je staat op de regel BOVEN een CyclusDefinitie, druk je Pijltje naar benee..dan springt ie over de Cyclus heen, vouwt em niet uit.. en dat stelt je in staat om snel door je programma te Stiefelen.
Maar!.. Druk je op Pijltje naar RECHTS, dan vouwt ie de CyclusDefinitie uit, en verplaatst de Cursor naar de startpositie van de eerste parameterwaarde! #Jottum!.. ga je verder naar beneden met de Pijltjestoetsen, en je komt op de regel ";ENDCYCLE" dan klapt ie de boel weer netjes in, en wacht ie verdere toetsaanslagen af op de eerstvolgende regel (omdat dat nooit een ":CYCLE..." regel is, je moet na een Cycle tenslotte eerst een aanroep doen, alvorens je de volgende programmeert!)

Code: Selecteer alles

 private void CodeBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up)
            {
                //MachineLabel.Text = "Up";
                if (Line.Contains(";CYCLE"))
                {
                    var place = CodeBox.Selection.Start;
                    startblock = next;
                    CycleIndex.Text = startblock.ToString();
                    CodeBox.CollapseFoldingBlock(place.iLine);
                }

            }
            if (e.KeyCode == Keys.Right)
            {
                //MachineLabel.Text = "Right";
                if (NextLine.Contains(";CYCLE"))
                {
                    startblock = next;
                    CycleIndex.Text = startblock.ToString();
                    CodeBox.ExpandBlock(next);
                   SendKeys.Send("{Home}"+ "{Down 2}" + "{Right 10}");

                }
            }
            if (e.KeyCode == Keys.Down)
            {
                if (Line.Contains(";ENDCYCLE"))
                {
                    CodeBox.CollapseFoldingBlock(startblock);
                    SendKeys.Send("{Home}");
                    SendKeys.Send("{Up}");
                }
            }
        }
'k heb het zo dus opgelost..en dat lijkt dus te werken.. nu even kijken of het "hufterbestendig is..

Dus.. sta je boven een Cyclus, dan ▶ om de Cyclus te openen, 🔽 om er overheen te stappen, en als ie open is, zodra je op ";ENDCYCLE" staat is 🔽 ook weer genoeg om 'm dicht te vouwen.. ga je met 🔼 terug...
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Momenteel doende met de "Setup" de eerste keer dat ik echt objectgeorienteerd aan het programmeren ben.. om te beginnen best een uitdaging, maar als je het trucje eenmaal doorhebt.. dan wordt het een stuk eenvoudiger..
eerst een "Class" aan moeten maken, met daarin het "object" Machine, en dan de diverse eigenschappen die je eraan toe wilt kunnen kennen..(is dit nederlands?)

Zoals daar hebben te zijn: 't CNC_ID, de Procesnaam van EdingCNC om EdingCNC naar de voorgrond te kunnen halen. voor V4 is dat cnc, voor V5 edingcnc.. dat moet dan wel goed in de "macfile" van de machine staan, zodat ik dat in E++ kan laden, zodat je de goede kreet hebt voor de goede machine.. stel dat je draaibank nog op V4 draait, maar de Freesbank reeds op V5..

die "Macfile" is een bestandje dat dus al die eigenschappen in een INI formaat heeft staan, ik kan dat in E++ Laden, en dan de diverse teksten opzoeken en aan het Object machine hangen, als je een andere machine kiest, worden deze waarden dan overschreven met de waarden uit de MacFile van die machine..
Ik heb bewust voor een INI indeling gekozen, want dan kan ik later items toevoegen (als ik bijvoorbeeld een schermtoetsenbord wil toevoegen met een NUMPAD, en de Asletters.. als je geen Y as hebt, omdat het een draaibank is.. dan laat ik die bijvoorbeeld weg..heb je een 3 assige Freesbank, dan hoeven A, B en C er ook niet in te staan..

't is nu even goed opletten.. 't laden gaat al prima, maar soms wil je één en ander aanpassen.. stel dat je een nieuwe reeks dialogen hebt gemaakt, en die wil je testen. dan kun je in het setupscherm die file opzoeken, en dan wordt ie in de Macfile geschreven, en E++ houdt dan die file aan als de file met dialogen.., 't zelfde met de Iconen, dialogpictures en dergelijke..

ook het laatst geopende bestand wordt hierin gezet, zodat bij de volgende keer opstarten, E++ dat bestand weer automatisch laadt.. even zien of ik het regelnummer ook nog kan vastleggen.. maar da's van later zorg..
eerst maar eens zien dat ie bij wijzigingen de boel automatisch verfrist, en opslaat..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13539
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Vanmiddag even een ander dingetje beetgepakt.. Mijn Laptopje aan't Netwerk gehangen..
Hetgeen betekent dat ik in de "MacFile" van een Machine de juiste INI file met de gereedschapgegevens kan hangen..
Dat pad staat nu keurig in die file, de volgende stap wordt het daadwerkelijk laden van de Tooltabel.
'tzelfde geldt ook voor de DIalogen, de Dialoogplaatjes, en de iconen , alsmede de "Custom Codes"

Dat gaat dus betekenen: dat je op een "Centrale PC" dus gewoon over het netwerk kan verbinden met een machine.
CAM?.. Jawadde!.. en wel hierom.. vanaf één PC kun je straks gewoon een machine uit de lijst kiezen, en de juiste Iconen laden in E++, alsmede de Tooltabel van die machine (realTime, dus als iemand em daar wijzigt, zie je dat de eerst volgende keer dat je de tabel opent, maar ook de Dialogen en de daarbij behorende plaatjes, en de Custom Codes die je onder de Functietoetsen kan knopen..

Hetgeen dus betekent!: stel je hebt een werkplaats met meerdere EdingCNC gestuurde machines.. en een stapeltje tekeningen.. je pakt de bovenste van de stapel.. da's een draaiklusje, dus je gaat in E++ naar het Setup scherm, kiest de draaibank van je keuze.. maakt een bestand aan, knopselt daar wat code in, en dan kun je ook DIE versie EdingCNC opstarten, Want.. als je EdingCNC tegelijkertijd op 1 PC draait. dat gaat niet.. maar op 2 PC's gaat dat wel. wat de gevolgen daarvan kunnen zijn, weet ik nog niet.. dat moet ik even testen.. Maar.. je kunt in elk geval terwijl die machine draait op zijn eigen PC, op jouw PC de simulatie draaien, dus het werkbereik en de Nulpunten zijn zoals ze voor die machine zijn ingesteld, zodat je ook vantevoren kunt zien of het past..
ben je klaar voor die machine, dan schakel je over naar een andere, start EdingCNC voor die machine op, en doorrrrr..
hfjbuis
Donateur
Berichten: 3094
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: E++, Custom EdingCNC Editor

Bericht door hfjbuis »

Arie Kabaalstra schreef: 14 apr 2024 20:00 Momenteel doende met de "Setup" de eerste keer dat ik echt objectgeorienteerd aan het programmeren ben.. om te beginnen best een uitdaging, maar als je het trucje eenmaal doorhebt.. dan wordt het een stuk eenvoudiger.
Objectgeoriënteerd programmeren is niet noodzakelijk, maar het maakt, met minder code, veel dingen eenvoudiger.
There are only 2 limits, the sky and your imagination
Plaats reactie