EdingCNC-> DXF bestanden

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:

EdingCNC-> DXF bestanden

Bericht door Arie Kabaalstra »

Luitjes;

't is al eens eerder ter sprake gekomen, maar ik heb 't voor elkaar.. een beginnetje in elk geval.

Wat?.. DXF bestanden aanmaken met EdingCNC.. Wat?.. Ja.. een paar subroutines om punten en lijnen in een DXF bestand te zetten..
Waar is't goed voor?..
Stel.. je schrijft een aantal tastroutines, dan roep je daarin ook die subroutines aan om punten of lijnen op te slaan.
Denk bijvoorbeeld aan 't meten van een onderdeel, je krijgt meteen een DXFje met punten of lijnen, dit kan van pas komen als je een onderdeel na wilt maken..

Nou moet ik toegeven dat een taster natuurlijk een radius heeft.. zodra ik een taster heb, dan zet ik een rondje om elk punt heen.. de diameter haalt ie dan wel uit de tooltabel, zodat je tangentiaal aan die rondjes een lijn kan trekken om de absolute contour te krijgen.. zover ben ik nog niet.. :lol:

Hoe't werkt?..

Code: Selecteer alles

;REGION USERFUNCTIONS

	SUB USER_1
		GOSUB DXF_HEADER
	ENDSUB
	SUB USER_2
		GOSUB DXF_POINT
	ENDSUB
	SUB USER_3
		GOSUB DXF_LINE
	ENDSUB
	SUB USER_4
		GOSUB DXF_FOOTER
	ENDSUB
	SUB USER_5
		MSG"USER 5"
	ENDSUB
	SUB USER_6
		MSG"USER 6"
	ENDSUB
	SUB USER_7
		MSG"USER 7"
	ENDSUB
	SUB USER_8
		MSG"USER 8"
	ENDSUB
	SUB USER_9
		MSG"USER 9"
	ENDSUB
	SUB USER_10
		MSG"USER 10"
	ENDSUB
	SUB USER_11
		MSG"USER 11"
	ENDSUB
	SUB USER_12
		MSG"USER 12"
	ENDSUB
	SUB USER_13
		MSG"USER 13"
	ENDSUB
	SUB USER_14
		MSG"USER 14"
	ENDSUB
	SUB USER_15
		MSG"USER 15"
	ENDSUB
	SUB USER_16
		MSG"USER 16"
	ENDSUB
	SUB USER_17
		MSG"USER 17"
	ENDSUB
	SUB USER_18
		MSG"USER 18"
	ENDSUB
	SUB USER_19
		MSG"USER 19"
	ENDSUB
	SUB USER_20
		MSG"USER 20"
	ENDSUB
	
;/REGION

;REGION DXF

	SUB DXF_HEADER
	MSG "DXF FILE CONTOUR.DXF CREATED"
		MSG "DXF HEADER"
		Logfile "Contour.DXF" 0
		Logfile "Contour.DXF" 1
		logmsg "0"
		logmsg "SECTION"
		Logmsg "2"
		Logmsg "ENTITIES"
		Logmsg "0"
		#501=[#5001]
		#502=[#5002]
		#503=[#5003]
	ENDSUB
	
	SUB DXF_POINT
		LOGMSG "POINT"
		LOGMSG "8"
		LOGMSG "0"
		LOGMSG "10" 
		LOGMSG #5001
		LOGMSG "20"
		LOGMSG #5002
		LOGMSG "30"
		LOGMSG #5003
		LOGMSG "0"
		MSG "POINT STORED AT : X"#5001" Y"#5002" Z"#5003
	ENDSUB
	
	SUB DXF_LINE
		LOGMSG "LINE"
		LOGMSG "8"
		LOGMSG "0"
		LOGMSG "10"
		LOGMSG #501
		LOGMSG "20"
		LOGMSG #502
		LOGMSG "30"
		LOGMSG #503
		LOGMSG "11"
		LOGMSG #5001
		LOGMSG "21"
		LOGMSG #5002
		LOGMSG "31"
		LOGMSG #5003
		LOGMSG "0"
		MSG "LINE STORED FROM : X"#5001" Y"#5002 " Z"#5003" TO X"#5001 " Y"#5002 " Z"#5003
		#501=[#5001]
		#502=[#5002]
		#503=[#5003]
	ENDSUB
	
	SUB DXF_FOOTER
	LOGMSG "ENDSEC"
	LOGMSG "0"
	LOGMSG "EOF"
	MSG "DXF FOOTER INSERTED, FILE CLOSED"
	EXEC "NOTEPAD.EXE" CONTOUR.DXF
	ENDSUB

;/REGION
'k heb in bovenstaand stukje Code 20 UserFunctions staan..en 4 subroutines voor het maken van de DXF: DXF_Header, DXF_Point, DXF_Line en DXF_Footer,

je begint met het aanmaken van een nieuwe "Contour.DXF", de oude wordt zonder pardon gewist.. let daar op..
In die DXF wordt de Header gezet, en daaronder kun je met de routines voor punten en lijnen je .. je raadt het al.. punten en lijnen in gaan voegen.
bij het aanmaken van de DxF wordt de huidige positie van de machine gebruikt als startpunt van de lijn, elke volgende lijn komt vanaf het eind van de vorige lijn.

als je alles eringekliederd hebt.. sluit je de DXF met de DXF_Footer functie, en dan opent ie in Notepad.
Wat je dan nog moet doen is de eerste regel, de timestamp eruit halen, en als je niet met de Beta 4.04 werkt, moet je alles nog even naar Uppercase veranderen (ik doe dat altijd met Notepad++, maar ik weet natuurlijk niet welke Editor iedereen gebruikt. vandaar..

Ik heb de routines apart gezet, en niet in de UserSubs, zodat je ze ook aan kan roepen vanuit elke andere routine die je maar wilt schrijven..

Doe d'r wat leuks mee!!
Floppy
Berichten: 774
Lid geworden op: 11 apr 2007 23:40
Locatie: Zeddam

Re: EdingCNC-> DXF bestanden

Bericht door Floppy »

Volgens mij staat er een foutje in de line subroutine:

Code: Selecteer alles

		MSG "LINE STORED FROM : X"#5001" Y"#5002 " Z"#5003" TO X"#5001 " Y"#5002 " Z"#5003
De eerste #5001,#5002 en #5003 moeten volgens mij #501,#502,#503 zijn.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: EdingCNC-> DXF bestanden

Bericht door Arie Kabaalstra »

Ja, je hebt gelijk, niet dat het voor de functie uitmaakt, want het is alleen een melding
xander janssen
Berichten: 599
Lid geworden op: 08 jan 2009 08:53
Locatie: België

Re: EdingCNC-> DXF bestanden

Bericht door xander janssen »

Slim gedaan. Bert zal de prijs binnenkort wel omhoog kunnen doen, teach-in functie, 3D-CCM functie. Allemaal meerwaarde voor de software. 😀
Arie Kabaalstra schreef: 13 okt 2021 19:36
Nou moet ik toegeven dat een taster natuurlijk een radius heeft.. zodra ik een taster heb, dan zet ik een rondje om elk punt heen.. de diameter haalt ie dan wel uit de tooltabel, zodat je tangentiaal aan die rondjes een lijn kan trekken om de absolute contour te krijgen.. zover ben ik nog niet.. :lol:
Als het goed is beweegt de kogel bij het aantasten altijd over de normaal-lijn van het oppervlak wat je aantast i.e. je komt haaks op het oppervlak aan. Dus je weet de aantast richting (eenvoudig als je maar in 1 as aantast, iets moeilijker als je volledig 3D gaat tasten) dus dan kun je die aantast vector door het meetpunt verlengen met de diameter van de kogel en dat punt wegschrijven.
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: EdingCNC-> DXF bestanden

Bericht door hugo stoutjesdijk »

Eerlijk gezegd zou ik liever de punten in een eigen puntenwolk wegschrijven, en de conversie naar een dxf bestand in een los programmatje doen.
Dan ben je veel flexibeler.

Ik ben jaren geleden gestopt met het genereren van dxf bestanden toen ik door had dat je in de commando regel van autocad gewoon een hele file met pline ...... data, of andere instructies, kon plakken (Ctrl-C Ctrl-V)
Oké, die dxf kun je natuurlijk in meer pakketten inlezen. (als het goed is)

Code: Selecteer alles

pline 0,8
0,58
76,59
77,54
80,50
85,49
90,51.5
95,57
98,65.5
190,65.5
210,64.5
230,62
250,57
265,52
294,42.5
294,38
336,38
336,21.5
265,13.5
190,5
128,0
120,4
105,7.5
90,9
80,8
75,6.5
72.5,5
72,2.5
65,3
40,5
15,7
0,8

Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: EdingCNC-> DXF bestanden

Bericht door Arie Kabaalstra »

xander janssen schreef: 14 okt 2021 06:34 Als het goed is beweegt de kogel bij het aantasten altijd over de normaal-lijn van het oppervlak wat je aantast i.e. je komt haaks op het oppervlak aan.
Nee... dat weet je dus niet.. als je een vlak hebt dat onder een hoek ligt.. dan weet je niets, tot je een tweede punt getast hebt.. dan kun je een hoek berekenen, en aan de hand daarvan een lijn construeren, en daar een offset op zetten.
xander janssen schreef: 14 okt 2021 06:34 dus dan kun je die aantast vector door het meetpunt verlengen met de diameter van de kogel en dat punt wegschrijven.
Nope.. je verrekent de radius.. niet de diameter..

in de praktijk zal dat nog wel even wat rekenwerk worden, maar op zich is het niet heel spannend.. je pakt 2 punten, en dan kun je een hoek uitrekenen, en aan de hand daarvan kun je wel een translatie van die 2 punten uitvoeren.
als je het dan nog beter wilt doen, kun je beter 3 punten pakken, en een tolerantie erin bouwen.. als 3 punten op één lijn liggen.. sla je de middelste niet op.. , als er net een hoekje inzit.. dan wordt dat ook wel duidelijk... en dan behoud je het middelste punt.. maar da's meer voor als je complete contouren gaat tasten..

Met een reeks van 4 punten zou je dan zelfs nog cirkel(boog) detectie kunnen doen, door gewoon uit te rekenen of de laatste 4 gemeten punten op een cirkel passen.., maar da's een stevig robbertje rekenen
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: EdingCNC-> DXF bestanden

Bericht door Arie Kabaalstra »

hugo stoutjesdijk schreef: 14 okt 2021 07:11 Eerlijk gezegd zou ik liever de punten in een eigen puntenwolk wegschrijven, en de conversie naar een dxf bestand in een los programmatje doen.
Dan ben je veel flexibeler.
Dat kan natuurlijk ook.. Ik kan in QCad ook een pointlist inladen, en dan strooit ie de punten ook gewoon in een tekening.. , je kunt ook een CSV bestandje maken.. dan kun je die zo in Excel openen.. Feitelijk is elk ASCII formaat mogelijk.
('k heb het nog niet geprobeerd.. maar zelfs HTML zou mogelijk moeten zijn.. al weet ik niet waar je dat voor nodig zou hebben..)

de DXF die je nu met deze macro's kan genereren, kan in elk geval gelezen worden door QCad, LibreCad en Alibre.. zouden AutoCad gebruikers dit ook even willen testen?..

het ging er mij om, Is het mogelijk om een DXF bestand te genereren met EdingCNC, en dat gaat dus.. als je een CMM zou bouwen, dan kun je dus een routine maken om een DXF van een gemeten object te maken, en die eventueel als "overlay" op een tekening te leggen, digitaal dan.. je zou kunnen denken aan een tekening met de nominale maten en de tolerantievelden grafisch weergegeven, zodat je kan zien of, en zo ja waar het gemeten object buiten de toleranties valt

De komende tijd zal ik eens kijken of ik nog meer elementen kan toevoegen, dingen zoals Cirkels, aan de hand van 3 punten bijvoorbeeld..
Gebruikersavatar
ruudpg
Donateur
Berichten: 1051
Lid geworden op: 19 jul 2011 12:37
Locatie: Spijkenisse
Contacteer:

Re: EdingCNC-> DXF bestanden

Bericht door ruudpg »

Erg leuk en handig!

Net als Xander al een beetje schreef, zou het niet handiger zijn om de radius van de meettip op de positie van het meetpunt te corrigeren, je weet tenslotte ook de richting waarin je aan het tasten bent, voorkomt dat de om je punten weer cirkeltjes moet gaan tekenen en dan ergens een punt op de zijkant moet gaan doorverbinden, je kan dan gewoon de punten doorverbinden.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: EdingCNC-> DXF bestanden

Bericht door Arie Kabaalstra »

ruudpg schreef: 14 okt 2021 13:03 Erg leuk en handig!

Net als Xander al een beetje schreef, zou het niet handiger zijn om de radius van de meettip op de positie van het meetpunt te corrigeren, je weet tenslotte ook de richting waarin je aan het tasten bent, voorkomt dat de om je punten weer cirkeltjes moet gaan tekenen en dan ergens een punt op de zijkant moet gaan doorverbinden, je kan dan gewoon de punten doorverbinden.
Ja.. maar dan moet je wel de hoek van het gemeten vlak kennen.. en zoals ik daarover al schreef.. dan moet je dus 2 punten hebben..
de Radius van de meetkogel moet je sowieso wel kennen, als je die gebruikt om je werk in te meten tenslotte..

als je een routine zou willen maken om contouren te reproduceren, moet je dan ook je tastrichting voor het volgende punt bepalen, immers.. je zult dan rondom je werk moeten tasten. stel je begint links onder, dan ga je je eerste punt pakken in X+, dan schuif je Y+ een stukje op voor het volgende punt.. stel je schuift 1 mm op in Y en je 2de X punt ligt meer dan een 1 mm ver, dan heb je een hoek flauwer dan 45° te pakken.. en kun je beter in Y- gaan tasten, en in X opschuiven.. maar.. daar zit nog wel 't nodige puzzelwerk in.. ga ik wel een keer voor zitten.. :)

Wat ik tot nu toe heb, is nog maar het begin.. eerst eens kijken of ik een DXF kon maken.. dat is gelukt.. nu de rest nog..
Gebruikersavatar
Ballegooijen
Donateur
Berichten: 4913
Lid geworden op: 20 sep 2016 15:45
Locatie: 's-Gravendeel
Contacteer:

Re: EdingCNC-> DXF bestanden

Bericht door Ballegooijen »

Als je die dxf hier neerzet dan kijk ik of je hem ook in Fusion360 kan inladen.
Kennis vermenigvuldigt zich alleen als je het deelt.
https://www.Baldas.nl
xander janssen
Berichten: 599
Lid geworden op: 08 jan 2009 08:53
Locatie: België

Re: EdingCNC-> DXF bestanden

Bericht door xander janssen »

Arie Kabaalstra schreef: 14 okt 2021 09:46
Nee... dat weet je dus niet.. als je een vlak hebt dat onder een hoek ligt.. dan weet je niets, tot je een tweede punt getast hebt.. dan kun je een hoek berekenen, en aan de hand daarvan een lijn construeren, en daar een offset op zetten.
Daarom meet een professionele 3D-CMM vaak (afhankelijk van de vorm en gewenste nauwkeurigheid) in meerdere keren de punten in, inderdaad via een stramien om eerst het vlak te bepalen, dan de normaal te verrekenen en dan het uiteindelijke punt loodrecht op het vlak in te meten. "Stukje taart" voor jou om dat te programmeren.
Arie Kabaalstra schreef: 14 okt 2021 09:46 Nope.. je verrekent de radius.. niet de diameter..
Jij bent slim genoeg om deze typo te corrigeren in het uiteindelijke programma, maar gelukkig snap je de grote lijn :lol:
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13374
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: EdingCNC-> DXF bestanden

Bericht door Arie Kabaalstra »

Ballegooijen schreef: 14 okt 2021 14:26 Als je die dxf hier neerzet dan kijk ik of je hem ook in Fusion360 kan inladen.
Zal ik doen.. ik maak morgen wel een mooie.. dan gooi ik em hier even neer.. (kan em gewoon als TXT file plaatsen, en dan kun je zelf de Extensie wel omzetten naar DXF.. )
Plaats reactie