E++, Custom EdingCNC Editor

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

Moderator: Moderators

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

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

het is als "zij project" begonnen, naast EMCOterminal.
EMCOterminal is een projectje van mij om een G-code editor en een RS232 terminal in één programma te maken, er zijn wel terminal programma's en er zijn Editors, maar beiden in één.. dat is er niet.. of niet meer.
Toen ik daarmee bezig was, vond ik een fastColoredTextBox op CodeProject, een website waar je van alles kan vinden van programmeer tips tot complete software bibliotheken.
Daarmee kon ik, hoe mooi wil je het hebben, een eigen Syntax markering ontwerpen, kleurtjes, indentatie.. code folding.. the works..

Goed.. om te testen ben ik dus naast EMCOterminal met die FastColoredTextBox gaan experimenteren, en dat is uitgelopen tot E++

Wat is E++, en wat wordt het?, momenteel is het een Code Editor voor EdingCNC, want er zit een knop in die je overschakelt naar EdingCNC, en als je uit EdingCNC terug wilt naar E++, kun je dat vrij makkelijk doen, door een UserButton zo te programmeren dat je "" toevoegt aan een bestandje dat je in E++ hebt aangegeven om in de gaten te houden..

Hoe werkt het?.. E++ is zoals gezegd een Code Editor/programmeerapplicatie voor EdingCNC.
Het is een Editor waarin je duidelijk met kleurverschillen en indentatie en opvouwen van je code ziet wat je programma doet..
Daarbovenop zit een slimmigheidje.. als je je userbuttons in de Macro zo programmeert dat ze de waarden van een dialoog waar je een bewerking mee wilt programmeren wegschrijft naar een bestandje.., en je hebt in E++ aangegeven welk bestandje dat is.. dan heb je in feite een "blokje parameters" dat je zo als "Cyclusdefinitie" in je programma kan zetten..

en dat.. gaat min of meer automagisch..als je een programma aan het schrijven bent.. laten we zeggen je begint met een Tooloproep, dan programmeer je een cyclus, beweegt naar het punt waar je em uit wilt voeren, en dan roep je de cyclus op..
Dat programmeren van een Cyclus... je drukt in E++ op F12, dat brengt je naar EdingCNC, daar kies je de bewerking met een UserButton, je klopt de Dialoog in, en drukt op OK.. omdat je de dialoog variabelen in een bestandje wegschrijft, registreert E++ dat je het hebt gewijzigd. hij opent het bestandje, en met een Druk op F1 zet ie em in je programma.., een paar posts terug staat een... ach laat ook maar..



Zo werkt het..
Waar ik aan denk is: E++ gewoon uitbrengen als Editor, er zijn genoeg "handige jongens" die zelf een Cyclus kunnen schrijven, Ik denk dat ik er of een "modelMacro" bij doe, of dat ik heel duidelijk documenteer hoe je je macro moet opbouwen.
Op zich is het niet heel spannend, je schrijft de waarden van de parameters voor een bepaalde bewerking naar een bestandje.. dat wordt automatisch geladen in E++, en met een druk op de knop voeg je het in, één van die parameters, zo heb ik bedacht is om aan te geven welke cyclus je wilt uitvoeren, Ik heb daarvoor een Macrootje "M99" die kijkt naar de waarde van de "cyclus index" en daarmee de juiste macro aanroept, om met de andere parameters de bewerking uit te voeren..
Maar die "M99" is vrij.. je kunt zelf een M-Code kiezen en er een Macrootje voor maken, net wat je leuk vindt...

Wat er allemaal mogelijk wordt met E++, dat hangt dus af van je eigen creativiteit..
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: 27 mar 2023 10:46 er zijn tegenwoordig meerdere CNC besturingen die een vergelijkbare route kiezen, en er dus ook vergelijkbaar uitzien.. en dat heeft mede te maken met het gegeven dat meer en meer besturingen gebaseerd zijn op een PC, en niet meer op een PLC.
Jij hebt echt geen idee wat een besturing moet doen om die assen correct te bewegen.
De 'klassieke' besturingen waren allemaal speciale hardware, echt geen PLC. Het is pas van de laatste decennia dat PLC's ook een beetje redelijk assen kunnen besturen (en nog steeds niet uitblinken in HMI moeten ze ook niet willen).
De oude Philips 426 draaide op 8086 (186/286) hardware familie, maar wel met een eigen speciaal real time operating systeem.
Mijn besturing (1990) heeft 5x 6800 processor + 1x Z8000, die laatste is de PLC.
Heidenhain werkte volgens mij met Texas Instruments processoren. (en daar zetten ze tegenwoordig een Intel ding naast om de user interface te doen)
Doordat de huidige hardware wat sneller is geworden kan er steeds meer met PC hardware, maar dat is schijn.
Het bedienoppervlak is Linux of Windows (Siemens heeft een poosje met embedded windows of iets dergelijks gewerkt) maar daarachter zit een machine besturing waar dat bestand gewoon naar toe gedumpt wordt, die werkt dat dan gewoon zelfstandig af.

En als je een beetje wakker bent, ook bij de hobby machines is die real time factor nog steeds belangrijk. Daarom gebruik jij ook Eding controllers, want dat windows bakt er niets van, dat is slechts bedienoppervlak en doorgeefluik.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13536
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

nou.. laten we het er maar op houden dat ik me terdege bewust ben van wat er allemaal bij komt kijken.., het is ook niet dat ik de indruk wilde wekken dat een oude CNC besturing "slechts een PLC" is.. maar hoe dat vroeger opgebouwd werd?.. geen idee eigenlijk..
dat het tegenwoordig veel geavanceerder is, dat is door de toegenomen kracht van PC's, en da's alleen maar leuk voor iedereen die met CNC te maken heeft..
(Siemens heeft een poosje met embedded windows of iets dergelijks gewerkt)
Volgens mij Mitsubishi ook, zie de anekdote over Patience op een draadvonkmachine een paar posts terug..
want dat windows bakt er niets van, dat is slechts bedienoppervlak en doorgeefluik.
Dat is er inderdaad de reden van dat ik EdingCNC gebruik, omdat de uitvoer van de machine gebufferd wordt op de CPU.. (En... inderdaad.. ik heb dat doorgeefluik mede vormgegeven.. ;-) )

Wat mij wel leerzaam lijkt is een keer meekijken over de schouders van iemand die met die oude besturingen nog wonderen kan verrichten..
Ik heb van Bert Eding wel begrepen dat de Philips CNC besturingen ook op PC Hardware draaiden, maar toen nog niet snel genoeg waren voor bepaalde functies waar EdingCNC nu zijn hand niet omdraait.. en dat Bert die code toen wel getest heeft, maar dat het door de hardware van toen niets concreets opleverde... blij dat ie die Code al die tijd bewaard heeft..

Ik weet ook dat het schrijven van een CNC besturing, zelfs als je daarvoor kan "grabbelen" in een API vol met Functies, verdraaid niet makkelijk is..'kheb 2 speciale GUI's geschreven op EdingCNC, toen nog USBCNC.. met de eerste ben ik een volle week bezig geweest.. complete Mindmap erbij, en dan afvinken wat er klaar is.. en werken aan wat nog niet klaar is... die Mindmap stond vol met de "Software requirements", met daarachter de dingen die fysiek geschreven moesten worden om het voor elkaar te krijgen...

Wat E++ in de tussentijd betreft.. Ik ben met allerlei kleine testapplicaties bezig.. vanmorgen begonnen aan een kleine Applicatie die bij het opstarten een INI file leest, de belangrijke waarden (paden naar bestanden) in Textboxen zet, met daarnaast een fileDialog.. zodat ik een ander bestand kan kiezen.., dat wordt dan meteen in de Listbox gezet waar ik de INI file van E++ in laad, een Listbox, omdat dat makkelijker is om bepaalde delen uit te kopiëren en te vervangen.
Dit met het oog op de Setup van alles en nog wat..
Omdat ik de Wijzigingen automagisch wil opslaan is het misschien wenselijk om er toch een notificatie uit te gooien.. wat is wijsheid in deze?.. een MessageBox, of gewoon een TextLabel op het Setup scherm?.. die dan 5 sec. blijft staan?.. is wel te doen met een TImer.. maar da's meer code dan een Messagebox...
Dat op het moment dat je de setup verlaat, dat de INI wordt opgeslagen, en dat je dan een Messagebox krijgt dat ie inderdaad is opgeslagen..
aan de andere kant.. zo'n label...Ik lees net zo lief "Ini File is Saved..." en dat ie dan na een seconde of 5 verdwijnt.. dat label kan ook allerlei andere functies krijgen.. zoals aangeven dat een bepaalde toetsaanslag niet gepast is :"Toets zonder Functie" ofzo.. waar ken ik dat toch van?.. :lol:

Maar zonder gekheid.. EMCOTerminal heeft ook een dergelijke functionaliteit.. die geeft onderandere aan wat een bepaalde G-Code betekent.. en dat is in deze applicatie heel makkelijk te schrijven..
H.C
Berichten: 229
Lid geworden op: 08 feb 2021 15:14

Re: E++, Custom EdingCNC Editor

Bericht door H.C »

" en dat ie dan na een seconde of 5 verdwijnt..
zou jij niet beter voor eding gaan werken...bij de laatste beta blijft "Loading" gewoon heel de tijd flikkeren op het scherm, ook tijdens het frezen. :lol:

ja, straf wat jij hier in elkaar flanst.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13536
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

H.C schreef: 28 mar 2023 13:52

zou jij niet beter voor eding gaan werken...

't is dat ik nog maar een beginneling ben, en dat ik eigenlijk nou net in de verkeerde taal programmeer.. EdingCNC is geschreven in C++, een taal die Rechtstreeks naar :arrow: Machinetaal wordt gecompileerd, nou is de stap van C# naar C++ niet heel groot, maar, naar wat ik begrepen heb is C# wel makkelijker om een Windows Applicatie te bouwen..
Het is wel door mijn ervaring met CNC machines dat ik wel een beetje weet waar het over gaat..

Of... zoals ik het altijd zeg.. om een goede CNC besturing te maken, heb je een goede programmeur nodig, die de wensen van een Professionele gebruiker kan implementeren.
ja, straf wat jij hier in elkaar flanst.
Dank je wel, maar zoals eerder gezegd... ik ben nog maar een beginneling.. Dat ik vroeger met de Commodore 16, in Commodore Basic, met de PC op school met Pascal (met UCSD Compiler) heb gewerkt, dat ik mijn kennis van Basic later heb kunnen gebruiken bij het programmeren van Heidenhain besturingen, en dat ik in die tijd ook in OPL programmeerde, gevolgd door VBA, en Visual Basic.. zo blijven we scherp.. C sherp... :lol:
C# is de taal waar ik momenteel het meeste in schrijf, omdat ik daar gewoon meer mee kan, zoals RS232 :P

Ik ben nu vooral bezig met alle afzonderlijke "Extra's" die erin moeten eerst in aparte programmaatjes te schrijven, om ze, als het eenmaal werkt zoals het moet, in E++ te plakselen, zo ben ik begonnen met eerst het op de rit krijgen van die textbox, met Syntax Coloring, vervolgens de Indentatie.
Toen was Files opslaan aan de beurt, eerst met de hand, later automagisch, gevolgd door het overschakelen naar EdingCNC, en weer terug.. dat door het in de gaten houden van het wijzigen van een bestandje..
't Is eigenlijk niet meer als bedenken wat het programma zou moeten kunnen, en dan kijken welke code daarvoor nodig is..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13536
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Zoals ik in een voorgaande post al aangaf.. 'k ben helemaal opnieuw begonnen.. alles wat ik had, dat heb ik nu meer gegroepeerd staan.
Qua Uiterlijk zie je het verschil niet.. maar onderhuids is er veel veranderd.

Dit ook omdat er een Tooltabel en een Setup aan toegevoegd moeten worden.. die staan op verschillende panels die ik naar believen zichtbaar maak, en zo kan ik ook makkelijk de toetsaanslagen en muiskliks uitfilteren.. namelijk door eerst te kijken wat er zichtbaar is.. , en aan de hand daarvan kan ik ook de functietoetsen een ander plaatje geven.. 't is net echt.. maar dan anders.. :lol:

Dat is ook de Luxe van weer thuis zijn.. omdat ik van mijn ouders afhankelijk ben voor vervoer naar de Fysiotherapeut, verblijf ik daar.. maar omdat ik niet eerder dan Donderdag weer in het ziekenhuis moet zijn voor een afspraak.. ben ik vanmiddag na de Fysio naar huis gegaan.. en zit ik nu met 3 keer 19" voor mijn snufferd.. en dat programmeert toch een stuk lekkerder..
Nu dus even kijken welke toets bij welk scherm welke functie gaat krijgen.. Ik voel een Excel bestandje aankomen..daar kan ik dan de toetsen en hun functies overzichtelijk maken, en als ik dat dan bij elkaar verzonnen heb.. dan maak ik voor de Toetsaanslagen van de 12 Functietoetsen en de "Clicks"op die knoppen de programmacode..opgedeeld in 3 groepen.. Codevenster zichtbaar, Tooltabel zichtbaar en Setup Zichtbaar.. die kan ik per toetsaanslag filteren, of.. vantevoren filteren.. hoe dan ook.. ik blijf in dat geval met max. 36 mogelijke combinaties zitten..
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 »

Ik vind dat je het eigenlijk wel verplicht bent om toch minimaal 1 ‘toets zonder functie’ te maken. :lol:
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13536
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

hugo stoutjesdijk schreef: 28 mar 2023 22:31 Ik vind dat je het eigenlijk wel verplicht bent om toch minimaal 1 ‘toets zonder functie’ te maken. :lol:
Daar is al aan gedacht.. ik overweeg.. zoals ik eerder ook aangaf om een Label ergens in de bovenbalk te zetten met statusweergave.. dat heb ik in EMCOterminal tenslotte ook al zitten.. en dat vind ik ook wel mooi.. , als je dan een toets aanslaat die in Die modus geen functie heeft..
.. dat schrijf ik in C# inmiddels uit mijn hoofd..
iets als

Code: Selecteer alles

 If (e.KeyCode==Keys.F1)
{
\\ Code komt hier
}
Else
{
Label1.text ="Toets zonder Functie :)";
}
meer hoeft het niet te zijn..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13536
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Wel fijn als je met een schone lei begint.. de dingen die je al klaar had, kun je er zo insmijten, en de nieuwe dingen.. dat is nog een beetje te overzien..

Het Codevenster, de Tooltabel, en de Setup Pagina staan nu op een Tabblad..en Ctrl/Tab om van het ene naar het andere tabblad te gaan.. heb ik eruit gekopt.. want dat werkte niet fijn met een DataGridview.. Dus heb ik nu Ctrl/links of /Rechts ingesteld als knoppen om over de tabbladen te gaan.

Nu alleen nog uitvogelen hoe ik inderdaad een Label voor een bepaalde tijd een boodschap kan laten weergeven.. voor de welbekende "Toets zonder Functie" :lol:
maar ook voor "Program Saved" en "Setup Saved" alsmede "Tool #X Selected"
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 »

Niet zo moeilijk, je hebt gewoon 1 commentaar regel waarin elke functie toets een melding zet wat ie doet, of alleen dat veld leeg maakt.
Dus zodra je een andere functietoets kiest is de vorige weer weg.
Daar staat dan ook de melding, "Program Saved" en "Setup Saved" alsmede "Tool #X Selected"
Misschien kun je dat nog in verschillende kleurtjes doen afhankelijk van de ernst van de melding.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13536
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

hugo stoutjesdijk schreef: 29 mar 2023 13:04 Niet zo moeilijk, je hebt gewoon 1 commentaar regel waarin elke functie toets een melding zet wat ie doet, of alleen dat veld leeg maakt.
Dus zodra je een andere functietoets kiest is de vorige weer weg.
Daar staat dan ook de melding, "Program Saved" en "Setup Saved" alsmede "Tool #X Selected"
Misschien kun je dat nog in verschillende kleurtjes doen afhankelijk van de ernst van de melding.
2 Minds think alike.. Dat wat jij beschrijft.. is precies wat ik erin gezet heb..

Zoals ik het nu heb.. met Ctrl/Links en Ctrl/Rechts blader ik van rechts naar links, of van links naar rechts door mijn Tabbladden.. Tenzij.. ik de Esc toets een optater geef.. Esc. Keert ALTIJD terug naar waar het programma voor bedoeld is.. Code Kloppen.. Dus
tabControl1.Controls[0] == tabControl1.SelectedTab
en dan Knikkeren we deze erachteraan
MessageLabel.Text = "";
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13536
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

hugo stoutjesdijk schreef: 29 mar 2023 13:04 Niet zo moeilijk, je hebt gewoon 1 commentaar regel waarin elke functie toets een melding zet wat ie doet, of alleen dat veld leeg maakt.
Dus zodra je een andere functietoets kiest is de vorige weer weg.
Daar staat dan ook de melding, "Program Saved" en "Setup Saved" alsmede "Tool #X Selected"
Misschien kun je dat nog in verschillende kleurtjes doen afhankelijk van de ernst van de melding.
2 Minds think alike.. Dat wat jij beschrijft.. is precies wat ik erin gezet heb..

Zoals ik het nu heb.. met Ctrl/Links en Ctrl/Rechts blader ik van rechts naar links, of van links naar rechts door mijn Tabbladden.. Tenzij.. ik de Esc toets een optater geef.. Esc. Keert ALTIJD terug naar waar het programma voor bedoeld is.. Code Kloppen.. Dus
tabControl1.Controls[0] == tabControl1.SelectedTab
en dan Knikkeren we deze erachteraan
MessageLabel.Text = "";

Hetgeen dus ook betekent.. zodra er een Melding verschijnt. kun je em gewoon Wegpoetsen door Escape te heien..
Voor het mooie moet ik al die acties straks even in aparte Voids klinknagelen, immers.. ik ben nu bezig met de KeyDown Events.. Maar er zit ook inmiddels een Routine onder de F12.. die naar EdingCNC overschakelt.. en die ziet er zo uit:

Code: Selecteer alles

if (e.KeyCode == Keys.F12)
                {
                    SwitchBack();
                }
en in de Void SwitchBack()

Code: Selecteer alles

void SwitchBack()
        {
            Process[]
                    processlist = Process.GetProcesses();
            foreach (Process p in processlist)
            {
                if (p.ProcessName.Contains("cnc"))
                {
                    int hWnd = FindWindow(null, p.MainWindowTitle);
                    if (hWnd > 0) //If found
                    {
                        SetForegroundWindow(hWnd); //Activate it
                        return;
                    }
                }

            }
           
        }
Staat dus het snippertje Code wat ik hier aangedragen kreeg om over te schakelen naar een andere applicatie waarvan de naam in elk geval "cnc" bevat, mocht dat in de toekomst problemen geven omdat er bijvoorbeeld ook OneCNC gedraaid wordt..dan vraag ik Alfred gewoon of ie even de Naam laat veranderen naar Ecnc ofzo... :lol: #kleinemoeite..
Dan kan ik em met Zekerheid wel weer opduiken..
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: 29 mar 2023 13:24

Code: Selecteer alles

  if (p.ProcessName.Contains("cnc"))
Ja, die variabele "cnc" zou ik in een ini bestandje zetten, dan wordt je nooit onaangenaam verrast. ;-)
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13536
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

da's wel een mooie ja..

Dat ik de gebruiker bij de eerste keer opstarten laat zoeken naar de Applicatie die ie gebruikt, en dat ie daar cnc.exe selecteert.. en dat ik dan de C:\CNC4.03 ervoor, en de .exe erachter weg laat knippen?.. Is wel een idee..

Hmm..bij CNC V5 doet ie het niet.. moet ik weer zien te achterhalen wat daarvan de naam is Bingo.. CTRL/Alt/Delete.. Details.. Naam.. EdingCNC.EXE

Dan kan ik het nog af met een Keuzerondje.. V4 of V5.. cnc of EdingCNC
Plaats reactie