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 »

Afbeelding

Damn!.. da' ha'k eerder moeten hebben :lol:

Ik ben nog weer maar eens opnieuw begonnen, met dien verstande dat ik niet weer de hele GUI moet bouwen.. gewoon een Copie gemaakt van het project, en alle Code eruit gehaald (uit Form 1 dan), Form 2 is niet meer dan een Selectievenster, die laat je het profiel kiezen, indien er meer dan 1 is, als er maar 1 is, dan "Kachelt ie" in één ruk naar de Editor zodat je Code kan gaan Proppen.

Bovenin de FlowChart het moment van opstarten, en de Controle of er al profielen zijn aangemaakt.
Zo niet, Maak een Profiel, sla em op, kies het, Update de INI... Zo ja, zijn het er meer dan 1.. kies er een, zo nee, Kies het Enige profiel, Update de INI... Ga dan door, open het profiel in Form 1, zet de Paden goed en Open de Editor (toon het Editwindow, de juiste knoppenbalk, met de juiste Iconen, de juiste Custom Codes, de Juiste Dialogen, plaatjes en wat dies meer zei..

Zo hou ik dus overzicht.. 't is een hele klus..
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 »

'k Ben nu bezig met de "Setup" het deel waar je je machineprofielen aanmaakt.. en da's nog een hele puzzel..
'k had het eerder al voor elkaar om de profielen te laden, te wijzigen, en ze daarna automagisch op te slaan..

Echter.. Wat nu als je E++ voor het eerst opslaat?.. Juist.. dan moet ie de Ini gaan vullen met de info, en dan ook zo dat ie dan controleert of je niet op zijn minst de eerste 4 Velden hebt ingevuld, de Machinenaam, het CNC_ID om over te kunnen schakelen naar EdingCNC, de File met gereedschapsgegevens, en de CycleFile (die E++ in de gaten houdt, om terug naar de voorgrond te komen vanuit EdingCNC.

Nadat je de machinenaam ingevuld hebt, kun je dat veld niet meer wijzigen.. daar komt een aparte Functie voor.. Hoe, dat moet ik nog even verzinnen.. iets van "Rename" ofzo.. want alle andere dingen kun je wel wijzigen.. Of... ik zal de hele Tabel moeten blokkeren.. en pas openzetten als je "Wijzig profiel" kiest.. moet ik nog even diep over nadenken..

Volgende stap is het aanmaken van een Nieuw profiel, dan krijg je een lege tabel, die je kan volkleuren..en daarna slaat ie alles netjes op..
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 »

Voor de zoveelste keer iets nieuws uitgeprobeerd:
het laden van de Profielen was iets waarbij ik meerdere malen de haren uit mijn reet wilde sleuren.. :evil:

Maar.. Ik dacht veel te moeilijk, Dus.. een Testapplicatie gemaakt die dat voor zijn rekening neemt.. gewoon de IniFile laden, en de velden in een List smijten.. dan de items uit die lijst stuk voor stuk ophalen met een ouderwetsche For/Next Loop, en de gegevens aan de hand van "zoekstrings" uitpeuteren en ze eveneens in Lists proppen.
om daarna list voor list in één tabel te smijten..

Nu kan ik makkelijk uit die Tabel de gegevens per machine ophalen, door gewoon de naam op te zoeken in die tabel, en dan alle velden uit die rij te halen, om ze per machine dan in de tabel die ik in de Setup wil tonen te meppen gewoon op Index..
Dus.. stel.. Mijn Beagle is de eerste machine, en de EMCO5 is de tweede.. dan is dat respectievelijk Index 0 en Index 1.. dus wil ik het pad naar de Iconen weten, dan kijk ik naar welke machine ik heb.. stel.. dat is de EMCO5, dan is dat niet meer dan Tabel.Rows[1].Cells{"Icons"].Value.ToString().. 's dat nou alles?.. Ja.. eigenlijk wel..
Dat wil zeggen dat ik die Tabel eigenlijk niet echt nodig heb.. ik heb immers mijn Lists.. dus.. kan ik ook zeggen Machine Index = 0, dus Icons[0]...die tabel heb ik eigenlijk alleen om de gegevens zichtbaar te maken..
Voor de Setup van een machine is dat wel wat je wilt, immers de gebruiker moet kunnen zien waar wat uithangt, en dat eventueel naar smaak aanpassen..
Dus.. voor elke machine wordt wel een tabel aangemaakt.. maar dat is alleen een kwestie van alle lists aflopen met de Machine Index.. "Eitje"

Alleen.. is het maar goed ook dat ik dat even gestrestest heb met een Tabelletje.. want ik kreeg Errors genoeg.. bleek em uiteindelijk te zitten in Tikvaudtjes in sommige INI-Markers..
Maar het lollige is nu wel dat ik zoek op waarden in de gegevens, dus maakt het ook niet uit in welke volgorde de Items in de INI van de machine staan..

Code: Selecteer alles

[Machine]
Beagle VMC2814
[CNC_ID]
cnc
[ToolBox]
C:\CNC4.03_62\Beagle.ini
[CycleFile]
C:\CNC4.03_62\cycle.epp
[CustomCode]
C:\C# Projects\E++\New Release\E++\bin\Debug\CustomCode
[Dialogs]
C:\C# Projects\E++\bin\Debug\dlg.txt
[DialogPictures]
C:\C# Projects\E++\New Release\E++\bin\Debug\DialogPictures
[Icons]
C:\C# Projects\E++\New Release\E++\bin\Debug\Icons\Beagle
[LastFile]
C:\CNC4.03\Test.nc
[ToolName]
1
Zo komt een Machine_INI, extensie .MAC er dus uit te zien..de teksten tussen de { } zijn de "Markers" waar ik dus naar zoek, en het veld eronder is de waarde die ik nodig heb..

Nu verder met het maken van de MachineTabellen, en de aanmaak van nieuwe profielen..zodra ik die heb.. voeg ik die gewoon toe aan de lijst met machines.. En dan kan ik gewoon de *.MAC file van een machine opslaan door de lijst af te lopen.. en daar is het mooie weer wel.. dat de Kolomnamen gelijk zijn aan de INI Markers.. dus op Index die waarden opzoeken, en in de file mikken..
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 »

een nieuw Idee kwam net bij me Bovendrijven..
er zijn mensen die een Klavier zonder NumPad in hun Console hebben..dat is natuurlijk niet het meest praktische :lol:

Dus!.. (wederom afgekeken van Heidenhain, en wel de nieuwe TNC7) stel.. je hebt een Mepscherm.. waarom dan niet een Custom schermtoetsenbordje?..
't blijkt Supereenvoudig te programmeren te zijn, dus ik denk dat het wel een mooie toevoeging kan zijn.
Ook omdat ik bij sommige toetsen (zoals X, Y, Z, A, B en C automagisch een spatie kan invoegen, dus kun je lekker doortypen, en toch je code netjes houden..

Afbeelding

Zo gaat dat er ongeveer uitzien..

de Bedoeling is dat er een Functietoets, of een schermknop aan de zijkant komt om het toetsenbord tevoorschijn te laten komen en weer weg te schuiven..

Afbeelding

Verder Binnenlands nieuws!..Ik heb de tabellen voor de Setup nu "klaar" dat wil zeggen, zodra je in het venstertje links een machine selecteert, wordt de hele tabel met gegeven meteen geladen in de Tabel Rechts..(met dien verstande dat ik de verkeerde list in het linkervenster geladen heb, daar moeten de Machinenamen staan, en NIET de paden naar de MACFiles, dat moet ik nog even aanpassen.. :oops: )
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 "klein zijprojectje" was ik nog met een andere applicatie bezig, en daarbij bedacht ik.. 't zou wel fijn zijn als een Applicatie maar 1 keer kan draaien.. dat wil zeggen.. net als EdingCNC, dat er maar 1 exemplaar van de Applicatie kan draaien, en dat je een (Fout)melding krijgt als je em NOG een keer probeert te starten..

Dat was een hele zoektocht.. wel 5 minuten.. het blijkt redelijk simpel te zijn..
in VB.NET was't echt een eitje.. gewoon in Visual studio instellen dat het een "Single Instance Application" moest zijn.. en klaar..
in C# echter moet je wat Code toevoegen aan je programma

Code: Selecteer alles


bool instanceCountOne = false;

            using (Mutex mtex = new Mutex(true, "MyRunningApp", out instanceCountOne))
            {
                if (instanceCountOne)
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(new Form1());
                }
                else
                {
                    MessageBox.Show(" already running");
                }
            }
en bovenin je programma niet vergeten om

Code: Selecteer alles

 using System.Threading;
te zetten..

Nu nog even kijken hoe ik het voor elkaar moet krijgen dat zodra ik een CNC File wil openen, dat ie dat in E++ doet, dus dat E++ "Wakker wordt" als je op een CNC bestandje Dubbelklikt, of als ie wordt aangeroepen uit EdingCNC, als je daar op de "EDIT" knop drukt

Dat zou namelijk mooi zijn, want dan kan de UserSub waarin je de CycleFile even opent en sluit om E++ Wakker te maken vervallen.. en zal E++ dus gewoon wakker worden als je in EdingCNC op Edit Heit.. en zo willen we het eigenlijk hebben..

Kortom.. Ik heb nog wat te doen..
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: 06 okt 2023 11:00 Kortom.. Ik heb nog wat te doen..
Dat kun je wel zeggen, trek daar maar rustig een middagje voor uit.
Die functionaliteit is gewoon een standaard mogelijkheid in Windows.
Rechtse muisknop op een willekeurig bestand met die extensie, openen met, en vinkje zetten altijd toepassen.
Pff. ik ben weer uitgewerkt voor vandaag. :lol:
Je zou ook een keer de manual kunnen lezen, een van jouw stokpaardjes. :roll:
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 »

Ik heb hier geen Boeken over C#, ik zoek de meeste dingen op het net op, Stackoverflow, C# Corner, CodeProject, dat soort sites vol met programmeurs die allerhande antwoorden geven op net zoveel vragen, Echter!.. sommige oplossingen werken gewoon niet, en omdat er zoveel mogelijk is in C#, zoek je jezelf kleurenblind!..

Gisteren ook meerdere oplossingen gevonden voor het "Single Instance" maken van een Applicatie.. de eerste, werkte niet. de tweede was 3 kantjes code, de derde.. die werkte!.

Als het niet met een paar regels Code op te lossen is, dan deugt het niet (Ik citeer hier weer eens Edsger Wiebe Dijkstra:
"Simplicity is prerequisite for reliability".
If your design is not simple, the whole thing will eventually become fragile, unreliable and starting to fall apart.)


Eigenlijk zoek ik nog een goed boek over C#, ook omdat de mogelijkheden van Object georiënteerd programmeren me nog niet helemaal duidelijk zijn.

Maar goed.. hier geldt ook weer de "Wet van Kabaalstra": "Leren is leuk, anders was ik wel dom gebleven"
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: 06 okt 2023 15:45 Ik heb hier geen Boeken over C#, ik zoek de meeste dingen op het net op, Stackoverflow, C# Corner,
Is Een Windows Standaard Functionaliteit !!

Als ik een .D11 bestand heb, koppel ik dat zo aan m'n notepad++ editor. Of andere wensen.
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 »

ja, bij Windows Applicaties, Ik kan mijn bestanden keurig toewijzen aan E++, maar de PC opent ze dan niet, noch start ie E++ op..

Heel Belangrijk is dat vooralsnog niet.

Wat Ik al wel werkend heb, is dat een applicatie (Ik heb even een testapplicatie gebouwd) wel opstart en naar voren komt als je de Edit knop indrukt in EdingCNC, verder is het ook zo dat die applicatie maar 1 keer opgestart kan worden, dus geen dubbele vensters, 't is alleen dat als ie eenmaal draait, ie dan niet naar voren komt, ik krijg alleen de mededeling dat de applicatie al loopt (vergelijkbaar met EdingCNC dus)
Daar moet ik dus ook nog wat op vinden, dat als de applicatie al loopt, dat ie dan naar de voorgrond komt..
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 »

Wat ik inmiddels wel voor elkaar heb:
Ik heb het pad naar E++ nu in EdingCNC in de Setup gezet, en dat heeft als gevolg dat Als E++ draait, dat ie vlekkeloos overschakelt, alleen het opstarten wil ie nog niet.. wat daar de oorzaak van is, weet ik nog niet.. moet ik even naar kijken..

Dat ie met het Dubbelklikken op een bestandje niet opent en het bestand laadt, da's eigenlijk ook niet heel erg.. (leuk om later eens uit te zoeken)
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 »

Iets met parameter string uitlezen. Ik doe het regelmatig weet even zo uit m’n hoofd niet precies hoe dat heet.
Dan kun je een bestand ook sleuren en loslaten op je applicatie.
Bij opstarten kijk je of die parameter string teller groter dan nul is.
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 »

Ja.. zoiets zal het wel zijn.. Vooralsnog werkt het ongeveer zoals het moet, Ik kan nu E++ oproepen vanuit EdingCNC.. alleen start de applicatie niet vanzelf op als ie nog niet draait, en je vanuit EdingCNC de Edit Knop gebruikt..

Deze versie eerst maar eens op de Draaibank knopen, en dan testen...

25006

Verder nog even getest.. als je een Contour met Polaire Coordinaten beschrijft, kun je door op je startpunt het werkvlak op zijn kant te zetten ook Polair op een afronding positioneren, moet je wel de contour met Offset van de Radius programmeren.. (mogelijk hoeft dat niet, moet ik nog even verder testen)
Maar dan kun je dus dergelijke onderdelen zo aan de machine inknopselen..
Voorheen dacht ik altijd dat je een dergelijke contour altijd aan moest lopen op een hoek van 0, 90, 180 of 270 Graden, maar eigenlijk hoeft dat niet eens.. je kunt er ook een boogje buiten programmeren, en dan naar je Contour lopen.. eigenlijk niet zo heel spannend.. maar wel gaaf!
(Getoond onderdeel is een Dieptrekdeel voor een dieptrekstempel om Pompwaaiers te maken, dergelijke delen heb ik vroeger veel gemaakt in een Programma in Heidenhain Klartekst geschreven)
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 »

Hoop gedoe met de setup, maar ik ben eruit!.. Ik kan nu met een Lege Ini File beginnen, en een profiel aanmaken voor een machine.
Naam, CNC_ID voor het overschakelen naar EdingCNC, ToolBox om de gereedschapstabel te lezen, CycleFile, om vanuit EdingCNC de informatie van een Dialoog te lezen, en in je programma te gooien, Custom Code een map met bestandjes met code die je met een druk op de knop in kan voegen, Dialogs - een tekstbestandje met je dialogen in E++, een mapje met dialoog plaatjes, iconen voor de knoppen, en Toolname - of je wel of niet de beschrijving van het gekozen gereedschap erachter wilt zetten.

Profielen toevoegen gaat ook, dus dat deel is klaar.. 't werkt nu nog met "hard gecodeerde knoppen", maar dat ga ik nu aanpassen.. elk "scherm" in E++ krijgt zijn eigen knopfuncties, dus dat moet ook nog even gesch.. gekopieerd worden uit een oudere ontwikkelingsversie.
Verder moet er nog een Controle worden toegevoegd om te zien of je de MachineTabel goed hebt ingevuld, er zijn vier velden die verplicht zijn, anders werkt het niet, MachineNaam, CNC_ID, ToolBox en CycleFile, vul je die niet in.. dan slaat ie em niet op..

Dan nog de SyntaxMarkering erin zetten, de Dialogen lezen uit een bestand en weergeven als je de juiste knop indrukt.
Zo gaat het zo zoetjes aan meer en meer op een professionele programmeeromgeving lijken..
Kortom... bijna klaar.. :lol:
Leeuwinga
Berichten: 2989
Lid geworden op: 29 apr 2007 15:00
Locatie: Roden
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Leeuwinga »

ach, goede wijn duurd ook even....
Plaats reactie