Nieuw project, nieuwe probl... uitdagingen.
Ik ben bezig met een progje om G-Code bestandjes om te zetten van X-Y naar X-A om op cilinders te graveren.
Waarom zou ik dat willen?.. welnu.. de functie in CAMBAM is Kødt, en de functie in EdingCNC is zo mogelijk nog erger.. als ik er naar kijk.. dan is dat met een blik als van een aap in een roestig horloge..
En.. Laten we eerlijk zijn, Wat stelt het nou helemaal voor?.. geen ruk eigenlijk.. je maakt een CNC bestandje aan met de gravure op de Y-as, Z Hoogte = Radius van het onderdeel, Dat is in Cambam met een paar muisklikken en wat waardes wel ingesteld.. dat stelt niets voor..
Maar dan.. dan moet je feitelijk gewoon de Y veranderen in A, en de Coordinaten van millimeters omzetten in Graden.. en dat is een simpel rekensommetje..
We kennen immers de diameter, dus rekenen we de omtrek uit, en dan delen we 360 door die omtrek.. dan krijgen we een vermenigvuldigingsfactor (als de omtrek 360mm is, dan is 1mm gelijk aan 1°.. hoe moeilijk kan het zijn?
'k ben dus momenteel bezig met een klein progje.. Venstertje met 2 textboxen, een Loadbutton, en een textboxje waar je de diameter van het onderdeel invult.. Daaronder staan 2 labels (omdat je die niet kan editen), waarin vervolgens (on textbox_Changed) de omtrek en het aantal °/mm in verschijnt.. puur ter indicatie, Daar weer naast een Button met de tekst "Wrap Code Y-A", en een Save Converted File button.
Dus.. je gaat van links naar rechts.. Bestandje laden, diameter ingeven.. converteren, opslaan..meer dan dat is het niet, was het niet, en zal het ook nooit worden..
Maar.. de uitdaging zit em in het eruit peuteren van de Y-Waarden, en die dan vermenigvuldigen met de factor °/mm.. want meer dan dat moet het niet zijn..
Hoe ga ik dat doen?..
Code: Selecteer alles
if (lines[i].Contains("Y"))
{
lines[i] = lines[i].Replace('Y', 'A');
}
Die heb ik al.. maar dan moet ik ook nog even de cijfertjes achter de Y eruit peuteren, en die waarde omrekenen, en em dan terugmeppen in de string na de A
Dus.. hoe maak ik van
Dit
de Omrekenfactor heeft een dikke rij getallen achter de komma, maar ik wil de afronding pas na de berekening doen (de Cirkelbogen haal ik er in CamBam uit, die maakt er polylines van.
Dus.. als ik de getalwaarde eruit heb, wil ik em vermenigvuldigen, en dan afronden op 4 decimalen.. meer dan dat heb ik niet nodig..