E++, Custom EdingCNC Editor

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

Moderator: Moderators

Plaats reactie
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: 14 mar 2023 21:25 Waar ik nog wel een beetje boos over kan worden is dat je in EdingCNC zo makkelijk de X coordinaten een offset kan geven.. en DAT DOE JE NIET OP EEN DRAAIBANK!.. de X Coordinaten staan gelijk met de MachineCoordinaten, en wel zo dat X 0, bij Tooloffset X0 OP DE CENTERLIJN LIGT!!
Ik werk niet met de controller machine coördinaten maar met de controller work positions en pas geen G54 aan maar gebruik G92. Dat is een bewuste keus om te voorkomen dat andere programma's die G54 wel gebruiken daar misschien last van hebben. Het kost achter de schermen wat rekenwerk, maar daar ziet de gebruiker niets van.
Ook mijn X=0 ligt op de centerlijn van het werkstuk, ongeacht welke tool (offset) geselecteerd is. Dat is toch de bedoeling, dat je ongeacht de keuze van je tool, toch keurig op de juiste positie aan het draaien bent.
Ik gebruik ook geen X, maar daar waar kan, diameters in de schermen.
Arie Kabaalstra schreef: 14 mar 2023 21:25 Als je Contouren met RadiusCompensatie moet snijden (er vanuitgaande dat dat werkt) dan moet dat ook in orde zijn..
Zonder radius compensatie kun je niet eens een chamfer op maat draaien. Ook blijft dan altijd een puntje staan bij het vlak draaien. Als de eindpositie X=0 is, stuur ik de beitel de neus radius verder, in alle andere gevallen niet.
There are only 2 limits, the sky and your imagination
Gebruikersavatar
elvis3
Donateur
Berichten: 284
Lid geworden op: 08 dec 2017 13:54
Locatie: Tilburg

Re: E++, Custom EdingCNC Editor

Bericht door elvis3 »

Het is net zoals ik al heb gezegd een grote abracadabra voor mij.
Ik hoop in ieder geval dat ik straks, als gebruiker ,( maar dan voor het FREZEN met een router), hier heel veel gemak van hoop te hebben.
Dus brainstorm maar verder.

Beetje laat, maar op mijn leeftijd moet je als het gezellig is niet zomaar naar huis gaan. :lol: :lol:
Goeie groet Kees ( alias Elvis3)
Later kom je erachter, wat je vroeger had moeten doen.
Oud worden is niet alleen een kwestie van wachten, dat moet je ook leren.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13373
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Ik werk niet met de controller machine coördinaten maar met de controller work positions en pas geen G54 aan maar gebruik G92. Dat is een bewuste keus om te voorkomen dat andere programma's die G54 wel gebruiken daar misschien last van hebben. Het kost achter de schermen wat rekenwerk, maar daar ziet de gebruiker niets van.
Ik gebruik op de EMCOtronic TM02 alleen maar G54 eigenlijk, maar (dat heb ik geleerd bij een bedrijf waar ik gewerkt heb) ik heb voor elk product een "WorkShift"
als G54 Z = 0 dan G54 = G53
G53 Z0 ligt op de Spindelneus, dus, Ik tel daar 46 mm bij op, en dan heb ik em voorin de klauwplaat liggen, tel daarbij de uitsteeklengte bij op, en je hebt de voorkant van je werk..

Dat klinkt omslachtig, maar dat is het niet.. want.. hoe bepaal ik die waarde?.. simpel.. je zorgt voor een paraplu vol gekalibreerd gereedschap, in elk geval de lengtes gekalibreerd, en stelt in G35 en dan T0202 om er maar een te pakken.. 02 is bij mij een nadraai mesbeitel, en dan raak je de voorkant van je werk.. en die z waarde die je dan afleest.. vul je in bij G54.

ik hou voor mijn serieproducten een (eveneens geleerd bij dat bedrijf) instelblad paraat.. en daarop staan alle belangrijke gegevens voor een product:

24731

Zoals de productnaam, tekeningnaam, programma, machine, Werkstuk Coordinatensysteem, Offset, en de gebruikte gereedschappen, en hun positie op de wisselaar.

een ander product gaan maken?. instelblad erbij.. gereedschappen wisselen, (Door de wijze van bevestigen hoef je ze niet elke keer te kalibreren), Juiste spanmiddel erop, juiste waarde invullen bij het juiste nulpunt (gewoon in het tabelletje), materiaal in de klem, grote groene knop.. Koffie.. meer dan dat is het niet, was het niet, zal het ook nooit worden..😏
Zonder radius compensatie kun je niet eens een chamfer op maat draaien. Ook blijft dan altijd een puntje staan bij het vlak draaien. Als de eindpositie X=0 is, stuur ik de beitel de neus radius verder, in alle andere gevallen niet.
Jawel.. als Beitelradius=0 is er niets aan de hand.. en voor een eenvoudige Chamfer is zoiets nog "on the fly" te berekenen.
Wat dat puntje bij vlakdraaien betreft.. ELKE draaier weet dat je voor vlakdraaien net over het hart moet draaien.. als je dat niet weet, dan moet je in het vervolg met je takken van een draaibank afblijven, en gaan kantklossen ofzo...🙄

als je Daarentegen met contouren bezig bent, en die in stukken opdeelt..dan moet je bij een Chamfer of Fillet wel rekening houden met de aansluitende contourelementen, Fagor had daar een instelling voor.. met de pijltjestoetsen kon je selecteren of het begin van je Chamfer of Fillet langs een cilindrisch deel begon, of aan een vlakke kant >Radius Beitel, als je aan een vlakke kant begon, dan positioneerde de beitel op x-radius voor. anders gewoon op x,
en datzelfde voor de achterkant van die Feature, als je langs een cilindrisch deel uitkwam.. dan liep ie R beitel door.. zo niet.. dan stopte ie tegen het platte vlak..

ik moet nog even hard nadenken over hoe ik dat ga vastleggen.. want al ik met beitels met een radius ga werken.. dan moet het wel gecorrigeerd worden.. anders klopt het niet... Ik denk aan nummers 1 t/m 4 om aan te geven hoe de boel eruit ziet.. pictogrammetjes erbij.. dat moet het wel doen..

Tevens zit ik te denken aan 2 modii voor mijn macro..de "klunsmodus" voor "effe snel een dingetje draaien, en de "expertmodus" voor het maken van complete programma's.. daarin komen dan minder parameters om in te vullen, zodat je zelf wat meer moet nadenken.. maar dat staat dan dichter bij andere professionele besturingen, eigenlijk een beetje zoals de EMCOtronic TM02, en waarschijnlijk een hele resem andere "ouderwetsche" besturingen.. zorgen dat je beitel op de goede plek staat.. invullen wat je weet.. de rest weet de machine wel. Start. Koffie!!
Het is net zoals ik al heb gezegd een grote abracadabra voor mij.
Ik hoop in ieder geval dat ik straks, als gebruiker ,( maar dan voor het FREZEN met een router), hier heel veel gemak van hoop te hebben.
Dus brainstorm maar verder.

Beetje laat, maar op mijn leeftijd moet je als het gezellig is niet zomaar naar huis gaan. :lol: :lol:
Goeie groet Kees ( alias Elvis3)
voor elke leeftijd geldt.. niet eerder naar huis dan de gezelligheid... :mrgreen:
Abracadabra?.. ach..zolang ik het kan volgen, kan het nooit moeilijk zijn..voor sommige processen heb je er veel aan als iemand er eens goed voor gaat zitten, en alles uitpluist.. zodat het voor de anderen makkelijker wordt.. ik zit na mijn motorongeval momenteel toch op mijn reet.. dus kan ik mijn tijd maar beter goed besteden

Wat het frezen betreft... in wezen.. als E++ klaar is.. kun je er ook zelf allerhande Macro's voor schrijven. omdat de intelligentie in feite in EdingCNC zit...en daar tap ik alleen maar van met E++, meer dan dat is het niet, was het niet, zal het waarschijnlijk op korte termijn ook niet worden.. tenzij ik een makkelijke manier vind om zelf cyclusdialogen aan te maken in E++
Gebruikersavatar
serum
Berichten: 5396
Lid geworden op: 08 mar 2008 20:37
Locatie: Zwolle

Re: E++, Custom EdingCNC Editor

Bericht door serum »

elvis3 schreef: 15 mar 2023 03:44
Beetje laat, maar op mijn leeftijd moet je als het gezellig is niet zomaar naar huis gaan. :lol: :lol:
Goeie groet Kees ( alias Elvis3)
Zo is het net Kees. Als je plezier hebt doet de klok er echt niet toe.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13373
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Gezelligheid kent geen tijd... ;-)

het is mogelijk ook daarom dat ik altijd zo laat terugkeer van de jaarlijkse forummeeting, en meestal pas diep in de nacht terug ben van de Open dag bij EdingnCNC

Maargoed... de Zeef van Eratosthenes.. wie kent em niet?.. een buitengewoon handige methode om snel priemgetallen uit een verzameling te graaien..
Niet dat ik met Priemgetallen bezig ben.. nog niet.. maar!..Ik heb ook een soort zeef gemaakt.. de "Zeef van Kabaalstra", laten we'm zo maar noemen... hoe werkt ie?.. je mietert er een getal in, met maximaal 2 Decimalen... waarom 2. daar kom ik zo op terug..
laten we zeggen dat we er 3,14 ingooien... dan spuugt mijn Zeef er 3, 1 en 4 uit..Hoe?.. Nou.. zo..

Code: Selecteer alles

DLGMSG"Zeef van Kabaalstra" "BASISGETAL"200
#201=INT[#200]
#202=INT[[#200MOD1]*10]
#203=[[10*#200MOD1]*10]
MSG"Eerste getal ="#201" Tweede getal ="#202" Derde getal ="#203
m2
Kopieer bovenstaande gerust in een textbestandje, sla em op als Zeef.nc, en laad em in EdingCNC.. sla op de grote groene knop.. en see what happens..
Meer dan dat is het niet, was het niet, zal het ook nooit worden..
maar...wat kun je hiermee?.. Nou.. laten we zeggen dat we in een Macro een cyclus programmeren, met Cyclus Index 8, en we kiezen bewerkingsomvang 2(voor en nabewerken), of als we een chamfer nabewerken, dan moeten we weten of we vanaf een vlak of een cilinder werken,naar een vlak of een cilinder.. 2 getallen..dat moet te doen zijn..
Die zeef mieteren we dan gewoon in een Subje, roepen em aan als we de Cyclus moeten gaan bepalen tijdens programma afloop, en dan komen de parameters voor de bewerkingsomvang ook meteen mee.. Bij het programmeren zetten we de Cyclusindex erin.. de eerste parameter bewerkingsomvang is punt zoveel, de tweede is punt nul zoveel..
het is eigenlijk te simpel..in eerste instantie kunnen we ze makkelijk bij elkaar optellen, en als we de boel uitelkaar willen trekken.. dan rossen we'm door de zeef van Kabaalstra :lol:
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13373
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Code: Selecteer alles

DLGMSG"Zeef van Kabaalstra" "BASISGETAL"200
#201=INT[#200]
#202=INT[[#200MOD1]*10]
#203=INT[[10*#200MOD1]*10]
#204=INT[[100*#200MOD1]*10]
#205=INT[[1000*#200MOD1]*10]
MSG"Eerste getal ="#201" Tweede getal ="#202" Derde getal ="#203" Vierde getal="#204" En het reservegetal ="#205
m2
de Code nog even opgenetterd, en nu tot 5 getallen achter de komma.. moet je eens kijken hoeveel info je daarin kwijt kan..
Gebruikersavatar
andrefc101
Donateur
Berichten: 3702
Lid geworden op: 26 dec 2007 08:39
Locatie: Bergen op Zoom
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door andrefc101 »

Arie Kabaalstra schreef: 15 mar 2023 10:45 Jawel.. als Beitelradius=0 is er niets aan de hand.. en voor een eenvoudige Chamfer is zoiets nog "on the fly" te berekenen.
Wat dat puntje bij vlakdraaien betreft.. ELKE draaier weet dat je voor vlakdraaien net over het hart moet draaien.. als je dat niet weet, dan moet je in het vervolg met je takken van een draaibank afblijven, en gaan kantklossen ofzo...🙄
Voor wat betreft andere neusradius, je kunt toch ook meerdere offsets maken voor gereedschappen met een andere radi, bijvoorbeeld T0192 of zoiets. Meer is het niet, gaat het… laat maar 😉
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13373
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Ja. de EMCO kent dat trucje.. hoe we dat met EdingCNC gaan doen, ik weet dat er een manier is om het te "Foppen", door de gereedschapspositie als Parameter mee te proggen met de ToolCall..maar eigenlijk wil ik dat niet.. de Jongens en meisjes in Batadorp moeten gewoon eens aan de slag met wat werkelijk belangrijk is...

Ik zit net te denken.. mogelijk gaat het met een Gereedschapstabel.. gewoon een array van max 100 gereedschappen, want je hebt er momenteel toch niet meer.. en hoe vaak heb je er meer dan 100 nodig in je machine?.. precies... dus een Array van 100 gereedschappen.. met een Positienummer in de Wisselaar erbij.. moet wel te doen zijn.. dan hoef je je niet meer druk te maken om offsets en posities in één regel.. gewoon de Array even raadplegen.. meer dan dat hoeft het echt niet te zijn..

maar dat alles heeft nog geen directe invloed op de actuele neusradius van het gereedschap.. die staat in de tabel.. die roepen we op.. en die kunnen we ook opvragen als we dat tool gekozen hebben..dás allemaal niet zo spannend.. wat wel spannend is. krijgen ze de RadiusCompensatie in EdingCNC voor het draaien voor elkaar?.. want DAT moet goed zijn.. dan kunnen we dat gewoon gebruiken.. en daar heel veel leuke dingen mee doen.. zoals Offsets voor voor en na bewerkingen... Been there. done that.. lots of times..got the parts to prove it..
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
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 mar 2023 21:20 de Jongens en meisjes in Batadorp moeten gewoon eens aan de slag met wat werkelijk belangrijk is...
Ooit van de 80/20 regel gehoord?
Dan zou jij moeten begrijpen, dat wat echt belangrijk is de groep van 80% waar geld aan te verdienen is, wil je die andere 20% ook gelukkig maken, moet je daar nog eens 80% van je resource in stoppen, en dat is commercieel niet verantwoord.
krijgen ze de RadiusCompensatie in EdingCNC voor het draaien voor elkaar?.. want DAT moet goed zijn..
En zelfs dat zit nog niet eens in de laatste 1% van de 20% die ik net aanhaalde.
Dus een 'echt' werkende radiuscompensatie zal er bij EdingCNC voorlopig niet in zitten, zelfs niet voor het frezen. Daar heeft het gros van de gebruikers tegenwoordig hun CAM pakket voor, waarom zou je dan iets aan je machine willen doen, naast groene knoppen drukken.
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13373
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Weet ik ook wel Hugo, maar het is niet alleen bij EdingCNC, bij heel veel andere besturingen is het niet veel beter, het is dat ik niet op één of andere sneaky manier de Code van mijn EMCOtronic kan uitlezen en napluizen... want ik hoor nou eenmaal bij die 20 % die ALLES werkend wil hebben.., dat ook omdat ik gewend ben aan het programmeren aan de machine.. CAM is leuk.. maar dan moet je er in het bedrijfsleven wel een man extra voor hebben die niets anders doet, en een legertje knoppendrukkers op de vloer.. en het werk waar ik in zit..nee.. da's andere koek..

dan ben ik van die 20 % waarschijnlijk deel van de 2% die daadwerkelijk zelf dan maar wat Code gaat zitten kloppen.. :lol:

Speaking of Which!..

24764

Gisterenmiddag even thuis geweest... en even een PDFje op mijn Suppository gezet..
de manual van de EMCOtronic TM 02..
Waar ik het al eerder over gehad heb... EMCO's G84 Cyclus..
Hoeveel Parameters hebben we nodig?..Minimaal 4 (X, Y, DOC en F) en Maximaal 8 ( dan komen P0 , P2, D0 en D2 erbij) ..
Ben ik daar helemaal gelukkig mee?.. Neen.. want.. je positioneert feitelijk voor op je veiligheidsafstand, en dus.. houdt ie in de Z geen rekening met: of er een Cilindrisch deel voor de Conus zit, en de daadwerkelijke diameterverschillen in je werkstuk...
Ik denk dus dat het handig is om een Veiligheidsafstand in Z in te geven.. zodoende heb je in elk geval de compensatie van de eerder genoemde fout al, en als het deel rechts van deze feature Cilindrisch is, dan snijdt ie in elk geval daar niet in..
is het een vlakke voorkant, dan blijft er op de hoek een haartje Radius staan.. maar goed.. dat moeten we er dan maar afpoetsen als we de hele contour gaan nadraaien... Toch?
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13373
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Code: Selecteer alles

[END]
end=0xC0FFEE

Eh... staat in de Tools.INI van CNC V5.00 Beta 8..Coffee?..gaat mijn invloed zover?? :lol: :lol:
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13373
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Even verder denkend... Objecten..eh.. een Tool

Code: Selecteer alles

[TOOL_1]
id = 1
orientation = 9
length = 0.000000
width = 0.000000
zDelta = 0.000000
xDelta = 0.000000
diameter = 1.000000
description = Tool number 1
Dat is toch een object?.. met andere woorden: als ik met E++ een Subroutinetje maak, die gewoon de Tool.INI leest en in een overzichtje gooit?
dan moet ik toch op één of andere manier een Object "Tool" aan kunnen maken met
Tool Tool_1 tm Tool_99 as new tool?
met als eigenschappen ID, Orientation, Lenght enzovoorts?..
Maar dan moet ik dus waarden van parameters in de Properties van objecten kunnen mikken..

en datzelfde geldt ook voor de kleuren van de verschillende Properties van mijn Object Kleurenpalet..zoals Subroutine, MCode, GCode en dergelijke die elk een kleurcode moeten bevatten , en die ik liefst ook naar een bestandje weg kan schrijven en terug kan lezen..
Maar in wat voor variabele knoop ik een kleur, en hoe kan ik de properties tevens mee aanduiden met een variabele?

voor de Syntaxkleuren heb ik bedacht, een listboxje, met de "groepen" die een bepaalde kleur moeten krijgen.
Dan kies je er een. dubbelklik of Enter erop... Kleurdialoogje.. kleurtje kiezen. en dan in mijn object. de gekozen property uit de Listbox de kleur uit de kleurdialoog erop kwasten.. dat is op dat moment ook opgeslagen.. dus zouden ze ook dezelfde kleur moeten hebben als je 't de volgende keer opent..Gedoe allemaal.. :lol:
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13373
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: E++, Custom EdingCNC Editor

Bericht door Arie Kabaalstra »

Code: Selecteer alles

public class ColorPalet
	{	
			public String Subroutine, Region, Cycle, Gosub, GCode, Mcode, Loop, Binary, Unary;
        }
Als ik het goed heb begrepen, dan is ColorPalet mijn object, en Subroutine en verder zijn mijn Fields volgens Visual Studio.. is dan de waarde die ik eraan toe ken een Property?..

Wat ik eigenlijk wil bereiken met mijn "colorpicker" is dat ik de Fields in een Listbox zet, dan dubbelklik of Enter je op het veld van je keuze, er komt een kleurdialoogje tevoorschijn, je kiest een kleur, en die moet dan aan dat veld toegewezen worden.. dat moet toch wel kunnen...maar hoe?
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: 16 mar 2023 18:02

Code: Selecteer alles

public class ColorPalet
	{	
			public String Subroutine, Region, Cycle, Gosub, GCode, Mcode, Loop, Binary, Unary;
        }
Als ik het goed heb begrepen, dan is ColorPalet mijn object, en Subroutine en verder zijn mijn Fields volgens Visual Studio.. is dan de waarde die ik eraan toe ken een Property?..

Wat ik eigenlijk wil bereiken met mijn "C" is dat ik de Fields in een Listbox zet, dan dubbelklik of Enter je op het veld van je keuze, er komt een kleurdialoogje tevoorschijn, je kiest een kleur, en die moet dan aan dat veld toegewezen worden.. dat moet toch wel kunnen...maar hoe?
Even de kretologie goed zetten:
ColorPalet is een class
Subroutine en verder zijn properties van de class ColorPalet

Code: Selecteer alles

ColorPalet MyPalet = new ColorPalet();
Bovenstaande regel definieert object MyPalet van het type class ColorPalet

En een aanvulling op het gebruik van properties:
In C# is het gebruikelijk om voor properties een get en set methode te maken die gebruik maken van een _property. Dat lijkt overbodig code kloppen maar bij het veranderen van de waarde kan daarbij een methode aangeroepen worden die daarop reageert zoals OnPropertyChanged() in onderstaand voorbeeld.

Code: Selecteer alles

        private String _CommunicationLog = "";
        public String CommunicationLog { get { return _CommunicationLog; } set { _CommunicationLog = value; OnPropertyChanged(); } }
Het voordeel is dat je niet overal in het programma hoeft na te denken wat er allemaal moet gebeuren als iets van waarde veranderd. In bovenstaand voorbeeld wordt de code opgeroepen om de GUI te updaten. Maar dat kan veel meer zijn zoals in de volgende regel waarbij de gui wordt geupdate en daarna een "event processor" wordt getriggerd die code uit voert om het veranderen van de tool table te processen.
even scrollen om de hele regel te bekijken!

Code: Selecteer alles

        public ObservableCollection<ToolBit> ToolBits { get { return _ToolBits; } set { _ToolBits = value; OnPropertyChanged(); iCommandProcessor.RaiseEvent("ToolBitsChanged", value); } }
Dit is event getrigged programmeren. Ik weet het lijkt overkill, maar als programma's groter worden is het de methode om het overzicht te behouden.
Ik doe dit niet voor elke property maar wel voor properties waarop gereageerd moet worden als ze veranderden.
There are only 2 limits, the sky and your imagination
Plaats reactie