E++, Custom EdingCNC Editor

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

Moderator: Moderators

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

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Code: Selecteer alles

if (tabControl1.Controls[0] == tabControl1.SelectedTab)
            {
                StatusLabel.Text = "PROGRAM";
                button1.Visible = true;
                button2.Visible = true;
                button8.Visible = true;
            }
 if (tabControl1.Controls[1] == tabControl1.SelectedTab)
            {
                StatusLabel.Text = "TOOL LIBRARY";
                button1.Visible = false;
                button8.Visible = false;
            }
if (tabControl1.Controls[2] == tabControl1.SelectedTab)
            {
                StatusLabel.Text = "SETUP";
                button1.Visible = false;
                button2.Visible = false;
            }
Zo.. Ik vind dit wel netjes zo. op deze manier kan ik makkelijk de toetsen die ik op een bepaalde Tab nodig denk te hebben zichtbaar maken, en de andere onzichtbaar..
dat gekoppeld aan de eerder genoemde filtering, Per tabblad de KeyDown events afvangen..evenals de ButtonClicks..Mja.. zo komen we er wel..
Hoe dat bij Eding werkt, weet ik niet.. maar ik denk dat daar een vergelijkbaar foefje achter zit..

Ik denk dat ik er niet ver naast zit als ik stel : "Het bouwen van een goede User Interface is zo'n beetje het moelijkste deel van het programmeren van welke software dan ook.."

Het verhaal van Ctrl /Left of Right.. heb ik ook overboord gemieterd..
F1 da's Code invoegen, Mogelijk komt die (met een ander Pictogrammetje) terug op de Tooltabel Tab, om een gekozen Tool in te voegen..,

F2 dan, is toegang tot de Tooltabel. , en zoals uit bovenstaande stukje Code blijkt.. Button 1 en 8 worden onzichtbaar gemaakt.. en verworden dus tot "Toets zonder Functie".. :lol:

F8 is dan voor de Setup.. de laatste toets van het middelste blok functietoetsen.. Lijkt me prima..

De 4 Meest Rechtse toetsen, zijn "New File", "Open File" en "Save File (As)".. en F12.. is de omschakeling naar EdingCNC.. om daar je dialoogje te vullen en dat op te slaan in een Cyclusbestand..

Nou heb ik het ook nog zo gemaakt dat E++ alles voor ;Cycle eraf knipt, en alles na ;EndCycle ook..
Zodat je je Cyclusfile ook nog kan gebruiken om "even simpel iets te maken" door de File direct uit te voeren, en dan kun je er allerhande code voor en na opslaan.. voor het bewegen in vrijloop bijvoorbeeld..
hfjbuis
Donateur
Berichten: 3058
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: E++, Custom EdingCNC Editor

Bericht door hfjbuis »

Arie Kabaalstra schreef: 29 mar 2023 17:00 Ik denk dat ik er niet ver naast zit als ik stel : "Het bouwen van een goede User Interface is zo'n beetje het moelijkste deel van het programmeren van welke software dan ook.."
Daar heb je gelijk in. Ik gebruik daarvoor het "FOTI" model, "From Output To Input". In dit geval is de user interface de output en als die klaar is, maak je de input, de code achter de schermen. Bij een database werkt dat ook. Geef aan wat die moet uitspugen en zorg dan dat het erin komt. Zo voorkom je dat je de database vult (en de schermen programmeert) met gegevens die niet nodig zijn.
There are only 2 limits, the sky and your imagination
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

hfjbuis schreef: 29 mar 2023 20:05 Daar heb je gelijk in. Ik gebruik daarvoor het "FOTI" model, "From Output To Input". In dit geval is de user interface de output en als die klaar is, maak je de input, de code achter de schermen. Bij een database werkt dat ook. Geef aan wat die moet uitspugen en zorg dan dat het erin komt. Zo voorkom je dat je de database vult (en de schermen programmeert) met gegevens die niet nodig zijn.
we zouden een aantal van deze bevindingen moeten samenvatten.. en dan onze eigen bibliotheek aanleggen met documentjes.. zoals Edsger W. Dijkstra dat ook deed...
Edsger Wiebe Dijkstra schreef:Since a number of years I am familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they produce.
uit: https://www.cs.utexas.edu/users/EWD/tra ... WD215.html

Goto is niet het enige signaal dat een programmeur maar aan zit te kl... ungelen.. :lol: tig keer identieke Code, voor het afvangen van een Toetsaanslag, en een muisklik die dezelfde actie moeten hebben.. als je immers iets met Functietoetsen schrijft, dan moet het via het toetsenbord werken, maar ook via de Muis, en via het Mepscherm.. nou zijn dat gelukkig identieke events..
anders zou je:

Code: Selecteer alles

private void button2_GefingerPoken(object sender, EventArgs e)
{
    TabbNumber = 1;
    SetTab();
}
Er ook nog een keer bij krijgen... :lol:
Overigens is hier al te zien dat ik een Parametertje (TabNumber) een waarde geef, waarmee ik later weer de juiste situatie oproep... voor het naar voren brengen van het juiste tabblad.. en deze 2 regeltjes code staan dus in de Eventhandlers van KeyDown, en Button2

Het door jou aangehaalde "FOTI" doet mij eerlijk gezegd een beetje denken aan Bedrijfskunde, voorraadbeheer.. FIFO, First in,First Out, LIFO, Last In, First Out.. maar het bedrijf waar ik mijn loopbaan begon hanteerde het LOLA voorraadbeheersysteem... Last Out, Loud Alarm!!..
maar dit is wel een makkelijke om te onthouden.., maar we "struikelen zo'n beetje over de afkortingen.. op het hilarische af.. zoals het geliefde "SISO" Systeem.. Shit In, Shit Out..
ooit werd me gevraagd een getekende Manual te maken voor het onderhoud aan een speciaal deel van één van onze machines waar die klant dus dat speciale deel op wilde..
Tekening gemaakt.. en toen kwam de vraag.. 't moet wel een beetje een gewichtige naam hebben.. iets wat de indruk wekt dat we dit vaker doen.. maar dan zo dat de klant niet weet wat het betekent..
"Oh.. ja.. ik dacht aan een MSMD-document.."..
MSMD.. ja.. klinkt wel goed.. waar staat het eigenlijk voor?
"eh... eh... Manufacturer Special Maintenance Drawing... maar je mag ook Monkey See, Monkey Do zeggen..."

From Output To Input..Ik ga em onthouden..ik studeer al jaren tenslotte via het NHOL protocol (Never Had One Lesson) Nu even verder met het verder indelen van de Toetsaanslagen en ButtonClicks.., als ik ze allemaal maak.. en dan het merendeel Geen functie geef.. dan hoef ik er alleen maar een Functie in te knopen als ik die verzin..
Foti..'t is eigenlijk als het bouwen van een auto.. eerst bepalen wat eruit moet komen.. dus welke motor, welke versnellingsbak, en welke wielophanging.. en dan gaan we wel eens kijken hoe we dat in een Fraai glad jasje kunnen gieten..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

24798

Zo.. ze zitten erin hoor. de toetsen zonder Functie... In een volgende release, zou ik alle teksten ook in een Ini Bestandje op kunnen slaan.. en dan de gebruiker laten kiezen.. Nederlands, Engels, Duits, of Русский voor mijn part.. Ik heb nog wel een bekende in Oeglitsj, die me wel kan helpen met de vertaling.. :lol:
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:
Nou.. het zijn er iets meer geworden..maar.. met Esc... kun je ze nu uitpoetsen.. dat is gisteravond ook nog een "strijd" geweest.. ik had op een gegeven moment een parameter die moest kijken of je 1 of 2 keer op Escape had gedrukt.. bij de tweede keer ging ie dan terug naar het Codescherm..
Dat leek te werken..maar.. dat betekende wel dat ie het optelde.. dus als je 2 keer een foute toetsaanslag had gemaakt, en daartussenin 1 keer op Escape had gedrukt om de eerste te wissen.. ging ie gewoon terug naar het Code Scherm.. en dat was nou niet niet helemaal de bedoeling.. , Kort voor het slapen gaan kwam de oplossing bovenborrelen.. IK HEB AL EEN VARIABELE!!.. namelijk het MessageLabel, waar ik die tekst in gooi.. op een Keydown van Escape kijkt ie eerst.. if (MessageLabel.Text!="", dan wist ie het label.. en If(MessageLabel.Text="") Dan.. keert ie terug naar het CodeScherm..
Edsger Wiebe Dijkstra schreef:“Simplicity is prerequisite for reliability.”
Hoe kon ik dat vergeten...

Dan is nu (ik moet het nog even in de code nakijken) de hele structuur rond KnopfenGedruecken und Gefingerepoken wel zo'n beetje klaar.. Dus.. KeyDown en MouseClicks..
Ik heb voor beiden een afsplitsing gemaakt.. de Functietoetsen elk met een keuze tussen Tab 0,1 of 2 geselecteerd.., mochten er nog Tabs bij komen.. dan kan ik die makkelijk genoeg toevoegen..Ik heb ze ook in Regions gespijkerd, zodat ik hele lappen Code naar believen weg kan klappen.
Nu de hele structuur nog vullen.. zodat er minder en minder Toetsen zonder Functie overblijven.. :mrgreen:
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Ik ben druk bezig geweest de afgelopen dagen.

24800

Het eerste wat opvalt is de toename van het aantal Functietoetsen..en functionaliteit van de applicatie, we lopen ze even door...

24801

F4 en F5, zijn er nu voor het invouwen, en uitvouwen van de Code.. zeker als je onderdelen hebt met heel veel cycli, scheelt het aanzienlijk als je de boel in kan vouwen..

24799

Wat dan ook weer fijn is.. de Zoekfunctie (die had ik wat eerder toegevoegd, vandaar dat de Iconen van F4 en F5 er nog niet staan), F3 dus.. Nou is die zoekfunctie al ingebouwd in de FCTB, dus is dat alleen maar handig als ik de Functie onder een Functietoets plak, net als het invouwen en uitvouwen

24802

Dan hebben we de Tooltabel... Zodra je E++ opstart.. Wordt de Tooltabel geladen.. dus niet als je de Tabel opent, maar als E++ dus opstart. dat scheelt wat tijd.. Nu moet ik nog even een "FileWatcher"toevoegen, die niet alleen mijn Cyclusbestand in de smiezen, maar ook de Tool.Ini (V5) of CNC,Ini (V4) in't snotje houdt..
Dat kan ik wel verzinnen.. Dat kan ik Durven..

24803

En dan heb ik een Primeur in mijn software... een echte setup pagina.. F1 en F2 zijn voor het opzoeken van de Bestanden CNC/Tool.Ini, en de CyclusFile, het bestandje waar het allemaal om draait hier.. de Cyclus die je in EdingCNC kan programmeren, en vervolgens in E+ kan invoegen..
Het mooie is ook dat E++ alles voor ;Cycle en alles Na ;EndCycle over de schutting smijt.. en alleen de Cyclusdefinitie bewaart.. Dat maakt dus, dat als je zelf een Bestandje maakt dat je automagisch laadt in EdingCNC, dat je daar je voorpositionering, en het weglopen naar je startpunt in kan zetten.. want E++ Doet daar helemaal niets mee.. Tenzij... je het IN de Cyclusdefinitie programmeert met Parameters..

Wat valt er nog meer te verzinnen?.. Nou.. zoals ik al aangegeven had, de Tooltabel moet in de smiezen gehouden worden. , zodra je een tool veranderd op de machine, dan moet je Tooltabel bijgewerkt worden
Wat Kan ik nog meer bedenken?.. Nou.. wat te denken van een Uitgebreidere INIFile?.. Immers.. de Syntaxkleuren liggen nu nog vast in de Applicatie.. en dat zou ik graag anders zien..(een Testprogje dat de Class SyntaxColor gebruikt, en Kleurenbestanden kan aanmaken door het kiezen van een kleur in een Dialoogje, en het dan op te slaan in de desbetreffende groep is al gemaakt. het is alleen dat ik nog niet weet hoe ik die kleuren aan mijn "TextStyles" in de FCTB moet hangen.. , zodra ik dat werkend heb.. dan kun je meerdere Kleurenkaarten aanmaken.. en die sla ik dan op als *.CLR bestandjes ofzo.. een mooie Extensie waar de bedoeling wel duidelijk van is..
Verder... ja... Wat te denken van een "bibliotheek" van machines?.. Momenteel heb ik een Portaalfreesbank, mijn Beagle, en de EMCO Compact5 CNC op EdingCNC Draaien.. in de toekomst komt daar de EMCOturn 120 bij, en stel dat ik ze allemaal in een Netwerkje knoop.. dan zou't toch mooi zijn als ik Locaal op mijn PC een machine kan kiezen.. en de bijbehorende gegevens kan lezen?.. Ik denk even verder.. mogelijk.. moet ik EdingCNC ook opstarten vanuit E++, aan de hand van de Gekozen Machine in mijn Setup.. het omschakelen van de ene naar de andere macchine, dat zal dan wel even wat tijd kosten.. immers.. je zult EdingCNC moeten afsluiten, en de juiste weer opstarten..daar moet ik nog even diep over nadenken.. eerst even uitbuiken.. net gegeten.. :lol:
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

We "klungelen" lekker verder.. nouja.. klungelen..dat valt ook wel weer mee.. 't is meer dat ik nu de Puntjes op de ü aan het zetten ben.. op een i staat er tenslotte maar 1..
"FOTI" werd me onlangs geleerd.. From Output to Input.. Nu dus bezig om de IniFile aan te spreken om het "vorige" bestand te laden als je opstart..en dat ook in de Ini weg te schrijven bij het verlaten van het programma (Zowel bij het overschakelen naar EdingCNC, als het afsluiten van het programma zelf.)
en in plaats van het aangeven dat er iets is opgeslagen door middel van een Messagebox, heb ik bedacht.. dat kan ik ook met een icoontje doen.. een Diskette.. net als bij NotePad++, is ie Rood, dan zijn de wijzigingen nog niet opgeslagen.. , het is (als ik die routine erin geplakseld heb) uiteraard mogelijk om Save (as) te gebruiken.. F11 dus, maar da's vooral om bestanden dus onder een andere naam op te slaan.. omdat het bestand toch elke keer automagisch wordt opgeslagen.. maar als ik verschillende programma's met een vergelijkbare basis wil maken.. dan is daar F11 om dat even snel te regelen..bestandsnaam inheien..klaarrrr

intussen ook een beginnetje gemaakt met een Gebruiksaanwijzing, daarin komt onder andere een Voorbeeld, een Template voor de UserMacro, met de structuur van Dialogen en LogMessages uitgelegd.., zodat het voor iedereen die macro's kan schrijven ook duidelijk wordt waar deze aan moeten voldoen...

Verder nog kleine dingetjes... zoals even kijken naar de naam van EdingCNC volgens Taakbeheer.. zodat ik dat ook in de INi File mee kan nemen..voor het werken met V4 en V5.., en ook even kijken naar een PC waar Windhoos 10 op wil draaien.. mijn huidige CNC PC,of werkplaatsPC trekken dat niet..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

24813

Zo.. vanmorgen vroeg wakker vanwege de F1.. en daarna het klavier van de laptop even stevig beroerd..

te zien is dat de balk met Functietoetsen inmiddels gevuld:
F1: invoegen Cyclus
F2: Tooltabel
F3: Zoekfunctie
F4: Code Invouwen
F5: Code Uitvouwen
F6: Bookmark toevoegen
F7: Bookmark verwijderen
F8: Setup
F9: Nieuw bestand
F10: Open bestand
F11: Bestand opslaan (als)
F12: Naar EdingCNC

Verder heb ik er voor gezorgd dat de IniFile automagisch gesaved wordt als je iets wijzigt, en als je de Setuppagina verlaat.

Er zijn nog wat Keyboard ShortCuts:
Ctrl/B: Bookmark toevoegen
Ctrl/Shift/B: Bookmark verwijderen
Ctrl/Up: Code Invouwen
Ctrl/Down: Code Uitvouwen
Ctrl/S: Bestand opslaan

Zodra een geopend of nieuw bestand gewijzigd wordt, kleurt het Diskette Icoon Rood, zodra het bestand opgeslagen wordt, kleurt ie weer blauw.. heb ik van NotePad++ afgekeken.. maar ik heb wel een iets groter Icoon.. :mrgreen:
Nog te doen: bestand opslaan als de applicatie Focus verliest of afgesloten wordt..

En dan komt er weer een uitdaging... een Net Setup bestandje maken.. hoe doe ik dat?.. Ik meen me te herinneren dat ik daar vroeger InnoSetup voor gebruikte.. er moeten namelijk meerdere bestanden in één pakketje gefrot worden.. namelijk E++.Exe (maar da's Logisch), maar ook E++.Ini, een Voorbeeld Macrootje, en de map met de icoontjes...
Zodra dat klaar is.. dan kan ik het eens op het net kieperen.. en dan kunnen jullie er eens mee spelen...
Zelfs als je er nog geen cycli in klinknagelt.. is het wel gaaf als je van E++ naar EdingCNC gaat dat je meteen ziet wat je Code gaat doen.., als je in EdingCNC hetzelfde bestand geladen hebt..
Als je een Nieuw bestand aanmaakt, tenslotte, slaat E++ em direct op.. leeg of niet.. daar kijkt ie niet naar.. maar.. je kunt em dan meteen in EdingCNC laden..
Laatst gewijzigd door Arie Kabaalstra op 03 apr 2023 10:51, 1 keer totaal gewijzigd.
hfjbuis
Donateur
Berichten: 3058
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: E++, Custom EdingCNC Editor

Bericht door hfjbuis »

Publishen kun je in de IDE doen. Werkt ongeveer hetzelfde als bij publishen van een UWP app.

Voeg de bestanden en/of mappen toe die samen met de exe moeten worden gepubliceerd in het project. Dat is ook de plaats waar je ze kunt onderhouden.
Geef in de IDE bij de eigenschappen van het bestand aan dat het gekopieerd moet worden (copy allways)
Klik rechts op het project en geef aan hoe je het wil publishen, als klickonce (installer), of als map (portable)
There are only 2 limits, the sky and your imagination
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

hfjbuis schreef: 02 apr 2023 23:22 Publishen kun je in de IDE doen. Werkt ongeveer hetzelfde als bij publishen van een UWP app.

Voeg de bestanden en/of mappen toe die samen met de exe moeten worden gepubliceerd in het project. Dat is ook de plaats waar je ze kunt onderhouden.
Geef in de IDE bij de eigenschappen van het bestand aan dat het gekopieerd moet worden (copy allways)
Klik rechts op het project en geef aan hoe je het wil publishen, als klickonce (installer), of als map (portable)
Dus gewoon in Visual Studio Publishen?.. Ok.. can do.. denk ik... :P

dat toevoegen.. dat doe ik in de Project | proþerties?, daar moet ik nog even naar kijken dan.

Waar ik ook nog even aan zat te denken.. Wat nou als... als ik het zo kan maken dat er een AutoRun.inf bestandje bij zit.. dat je em op een Zetpil kan zetten, en dat ie dan op de machine waar je em instopt draait.. (dan zit ik alleen met de IniFIle).. nog even over nadenken dan..
hfjbuis
Donateur
Berichten: 3058
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: E++, Custom EdingCNC Editor

Bericht door hfjbuis »

Ik heb mappen voor settings, default settings, error codes/messages, examples, etc
There are only 2 limits, the sky and your imagination
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

hfjbuis schreef: 03 apr 2023 12:20 Ik heb mappen voor settings, default settings, error codes/messages, examples, etc
eh..😨..Jaa.. Jij wel.. First things First.. hoe kom ik erachter wat er PRECIES nodig is voor de Applicatie om te kunnen draaien?..
Ik heb om te testen even gewoon de \bin\release map gekopieerd naar een hoekje van de harde schijf.. en daarvandaan kan ik de applicatie ook laten draaien.. eh..Nee.. als ik de in de INI aangegeven File in EdingCNC wijzig.. dan komt E++ niet naar de voorgrond.. hij staat wel te knipperen op mijn Taakbalk, en hij neemt ook wel de waarden uit die File over.. maar hij komt NIET naar de voorgrond... Raar..
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

het komt hier op neer: ik kan de applicatie wel publishen, maar dan krijg ik alleen een E++.exe, en een mapje met Application Files.. alle?.. nee...
van de "speciale"bestandjes alleen het icoontje.. maar er moet meer bij.. zoals de E++.ini, en de map "Icons"

ik heb al zitten zoeken.. maar ik heb nog niet kunnen vinden waar ik die bestanden en mappen kan toevoegen.
hfjbuis
Donateur
Berichten: 3058
Lid geworden op: 13 feb 2017 00:26
Locatie: Hoensbroek

Re: E++, Custom EdingCNC Editor

Bericht door hfjbuis »

Ik heb in het C# project "ActivateWindow" een map "Data" gemaakt met daarin het bestand "TextFile1.txt" die ik bij de eigenschappen op "Copy Always" heb gezet. Bij het publishen word nu een map gemaakt met daarin dit bestand. Bij een update wordt dit bestand overschreven.
Publish.jpg
Je hebt niet voldoende permissies om de bijlagen van dit bericht te bekijken.
There are only 2 limits, the sky and your imagination
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Aha.. Op die manier.. alleen een map Data... ehh.. kan ik ook gewoon in de "root" bestanden toevoegen?.. want de Ini staat in de "root" ofwel dezelfde map als de Applicatie, en de map Icons staat ook in die map..

Hoe dan ook.. ik ga dat even proberen.. Thanks!
Plaats reactie