Het "Bouwen" van Macro's voor USBCNC

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

Moderator: Moderators

Plaats reactie
Gebruikersavatar
B.Reitsma
Berichten: 87
Lid geworden op: 28 mar 2011 07:41

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door B.Reitsma »

Vervang de eerste GOSUB CONTOUR door GOSUB UITVOER en verwijder de GOSUB UITVOER van de SUB DIALOG en ik ben het met je eens. :mrgreen:
Een andere optie is om het GOSUB UITVOER statement in het ELSE gedeelte te zetten van de foutcontrole. Dan kun je ook weer terug naar alleen GOSUB DIALOG aan te roepen aan het begin zonder daarna UITVOER of CONTOUR apart aan te roepen.
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13372
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

B.Reitsma schreef:Vervang de eerste GOSUB CONTOUR door GOSUB UITVOER en verwijder de GOSUB UITVOER van de SUB DIALOG en ik ben het met je eens. :mrgreen:
Je hebt helemaal gelijk.. kan ik weer een post gaan bewerken.. :oops:

enniewee..

Code: Selecteer alles

GOSUB DIALOG
GOSUB UITVOER
M2

SUB DIALOG
	; PARAMETERS
	; #1000 = DIEPTE
	; #1001 = DIEPTESTAP
	; #1002 = VEILIGHEIDSAFSTAND
	DLGMSG"VOER WAARDEN IN" "DIEPTE" 1000 "DIEPTESTAP" 1001 "VEILIGHEIDSAFSTAND" 1002
	;FOUTCONTROLE
		IF [#1000<#1001] ;ALS DIEPTE <DIEPTESTAP
			GOSUB DIALOG
		ENDIF
ENDSUB

SUB UITVOER
	;#2000 =  WERKPARAMETER DIEPTE
	#2000 = [#1001] ;WERKDIEPTE=DIEPTESTAP.. EERSTE STAP
	G0 Z#1002 ;GA NAAR  VEILIGHEIDSAFSTAND
	G1 Z0 M3
		WHILE [#2000<#1000] ; WERKDIEPTE < EINDDIEPTE
				GOSUB CONTOUR
		#2000=[#2000+#1001] ; VERGROOT WERKDIEPTE MET DIEPTESTAP
		ENDWHILE
	#2000=[#1000] ;MAAK WERKDIEPTE = EINDDIEPTE
	GOSUB CONTOUR
	G0 Z#1002 ;GA NAAR VEILIGHEIDSAFSTAND
ENDSUB

SUB CONTOUR
	G01 Z-#2000
	; CONTOURBESCHRIJVING
	G1 G91 X1
	G1 Y1
	G1 X-2
	G1 Y-2
	G1 X2
	G1 Y1
	G1 X-1
	G90
	; EINDE CONTOURBESCHRIJVING
ENDSUB

DIt moet nu Eindelijk de goede zijn.. Mea Culpa voor de eerdere "Fuck-ups"

de structuur is nu zoals we't hebben moeten.. we hebben een Sub Dialog, om de waarden in te geven, daar blijft ie dankzij de recursieve algoritme in hangen tot ie voldoet aan de gestelde voorwaarden.. komt ie daaruit, dan springt ie naar Sub Uitvoer.. daar moet sub Contour een aantal malen worden uitgevoerd, In Sub Uitvoer zit dan ook het algoritme dat regelt dat ie in stapjes naar zijn diepte gaat..

Ik moet ook geen programma's meer schrijven als ik een zware verkoudheid heb.. watten in mijn hoofd.. maar goed.. ik heb deze getest.. en deze doet het echt..

Let wel.. dit is nog maar de Basis.. maar wel een werkende basis.. als je zelf een zooi progjes en macro's wilt maken.. dan moet je er dus nog wel een Foutdetectie ingezet. dat heb ik hier omzeild door aan te geven dat je alle waarden positief moet ingeven..

een trucje dat ik je dan wel even wil meegeven.. je kunt het eenvoudig zo maken dat alle waarden automatisch Positief zijn, wat je ook invult..

de Functie ABS.. Absolute waarde.. die haalt indien aanwezig de - voor het getal weg..
#1=-20
#2=[ABS[#1]]
msg#2

vul maar eens in in MDI.. dan zie je precies wat ik bedoel..
R.Beitsma schreef: Een andere optie is om het GOSUB UITVOER statement in het ELSE gedeelte te zetten van de foutcontrole. Dan kun je ook weer terug naar alleen GOSUB DIALOG aan te roepen aan het begin zonder daarna UITVOER of CONTOUR apart aan te roepen.
die optie heb ik liever niet.. je kunt nu in één oogopslag de hierarchische structuur van het programma zien..
er hangen nu geen subs onder andere subs, met uitzondering van Sub Contour.. maar die is er alleen maar voor het aflopen van een baantje.. daar zit verder geen enkele vorm van Algoritmes in..

beschouw je Code als een tempel Gods.. houdt het rein en heilig.. en doe't licht uit als je weggaat.. :lol:

B.Reitsma, Bedankt voor je oplettendheid..!
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13372
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

't staat in de Release-Candidates (RC versies) vanaf Versie RC9, maar ik wilde em jullie toch niet onthouden..

Wat is er aan 't handje?.. Bert heeft een door mij lang gekoesterde wens kunnen verwezenlijken..
Dialogen met PLAATJES!..

Afbeelding

Hoe krijg je dit voor elkaar?.. Simpel..

Code: Selecteer alles

dlgmsg"pocket" "D"1 "S"2 "X"3 "Y"4 "R"5 "Fv"6 "Fh" 7 "R"8
bij het lezen van dit commando, kijkt USBCNC naar de map "dialogpictures" die er sinds RC 9 is, in deze map zoekt ie naar een plaatje genaamd "pocket.PNG ( letwel.. PNG!!)

Afbeelding
Ik heb dus even als voorbeeldje een plaatje aangemaakt van een "pocket" in Q-Cad, en daar heb ik even wat maten in gestrooid, dingen die je zou moeten invoegen als je een pocket wilt gaan frezen..
en die heb ik dus opgeslagen in de map Dialogpictures als "pocket.png", als ik de dialoog programmeer met "pocket" als eerste tekst, dan kijkt ie of ie daar het bijbehorende plaatje bij kan vinden..

Verder is het aantal programmeerbare parameters uitgebreidt tot 12 stuks.. zo kun je even wat meer in één dialoog kwijt..
keesk
Donateur
Berichten: 216
Lid geworden op: 16 aug 2008 18:44
Locatie: Weerdinge (bij MM)

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door keesk »

Natuurlijk iedereen de beste wensen en dat we maar veel spaantjes mogen maken!
Ik ben bezig het een en ander in macro's te zetten, nu loop ik tegen een probleem aan.
Ik heb op mijn PC twee versies van USBCNC een voor draaien en een voor frezen.
Voor mijn draai-versie heb ik wat knopjes en PNG plaatjes gemaakt. Nu blijkt dat de knoppen ook in de frees-versie te zien zijn! Weet één van de zeer gewaardeerde forum leden hoe ik dat uit elkaar kan houden?

KeesK
PaulBng
Berichten: 409
Lid geworden op: 02 dec 2011 18:54
Locatie: Leiden
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door PaulBng »

Kees,
De plaatjes die USBCNC gebruikt staan in de subfolders van de folder "icons" die weer in de installatie folder (USBCNC4 of USBCNCV3) staan onder "Program Files" (Of "Program Files(x86)" in een 64-bit systeem).
Bij installatie van bijvoorbeeld USBCNC V4 zie je dat er nog twee folders met icons staan als alternatief (van Sorotec).

Wanneer je de twee versies van USBCNC in dezelfde installatie folder hebt geinstaleerd heb je dus een probleem.

In de cnc.ini file staat gedefinieerd in welke folder de icons staan:
iconDirectory = "icons"

Wanneer de twee versies van USBCNC hun eigen ini file gebruiken zul je daar de aanpassing moeten doen.
Dit vind je dacht ik niet terug in de user interface.

Hoop dat dit helpt

Paul
Gewoon omdat ik wil weten of het kan...
keesk
Donateur
Berichten: 216
Lid geworden op: 16 aug 2008 18:44
Locatie: Weerdinge (bij MM)

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door keesk »

Na een nachtje slapen bedacht ik dat ik twee verschillende icon bestanden kan gebruiken.
Ik heb nu een sorotec_frees en een sorotec_draai. In de ini file van beide verwijs ik naar de
bijbehorende icons.

KeesK
keesk
Donateur
Berichten: 216
Lid geworden op: 16 aug 2008 18:44
Locatie: Weerdinge (bij MM)

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door keesk »

Beste CNC-ers,
ik ben tegen het volgende probleem aangelopen:
voor mijn draaibank ben ik macro's aan het schrijven voor de meest simpele bewerkingen. Nu zit ik met de vraag hoe laat ik mijn macro "pauzeren" om mijn werkstuk te meten en de gemeten maat in USBCNC in te vullen (ik heb simpel nullen uitstaan) en vervolgens weer verder te gaan met de rest van de macro.

KeesK
Gebruikersavatar
Arie Kabaalstra
Donateur
Berichten: 13372
Lid geworden op: 07 feb 2007 18:37
Locatie: Bakhuuz'n
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door Arie Kabaalstra »

Simpel.. dat doe je niet..
je kalibreert je gereedschappen.. bewerkt voor op een kleine overmaat, meet, corrigeert eventueel, en draait na..
keesk
Donateur
Berichten: 216
Lid geworden op: 16 aug 2008 18:44
Locatie: Weerdinge (bij MM)

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door keesk »

Oké Arie, boodschap begrepen! Hier is dan mijn eerste macro, compleet met dialoog tekeningen. Het wordt steeds leuker! Graag jullie commentaar?

KeesK

Code: Selecteer alles

sub afdraaien

    ;dlgmsg will popup a dialog with picture usbcnc.png from c:\program files\usbcnc4\dialogPictures directory
	dlgmsg "dialoog1" "Diameter" 100 "Lengte " 110 "Diameter materiaal" 120 "Lengte materiaal" 130 
	if [#110>#130]
		msg "Dat gaat niet! Materiaal te kort!"
		gosub afdraaien
	endif
	
	if [#5398 == 1]
       msg "OK Diameter="#100 "Lengte="#110 "Diameter materiaal="#120 "Lengte materiaal="#130
       else
       msg "CANCEL overnieuw"
		gosub afdraaien
    endif
	dlgmsg "Logo2" "Voeding mm/min" 140 "Toerental" 150 "Voorzet" 160
	if [#5398 == 1]
		msg "OK "
		F#140
		S#150
		gosub beginnen
	else
		msg "CANCEL "
	endif
	
endsub

sub beginnen
	
	DlgMsg "Dialoog2" "Beitel klaar?" 
	if [#5398==1]
		msg "Goed dan gaan we draaien!"
		gosub draaien
	else
		msg "Zet eerst de beitel op de goede plek!"
		gosub beginnen
	endif
	g0 z10 x[#120 + 10]
	msg "Eind programma"

endsub

sub draaien
	
	m3
	F#140
	S#150

	g0 z1
	#200 = #120
		while [#200 >= #100]
			gosub afnemen
			#200 = [#200 - #160]
			endwhile
			#200 = #100
			gosub afnemen
	m5
 

endsub

sub afnemen
	g1 x#200
	z-#110
	g0 x[#200+#160] 
	z1
endsub

5236
5238
5239
keesk
Donateur
Berichten: 216
Lid geworden op: 16 aug 2008 18:44
Locatie: Weerdinge (bij MM)

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door keesk »

Het vervolg van "Parabool draaien" van Rieks in het algemeen item:

Ik ben met mijn afschuinen macro nu zover als ik wil, alleen heb ik een probleem.
Om proef te draaien gebruik ik de simulatie op de PC in de huiskamer. Ik heb op advies van Arie hetgeen de macro moet doen ook getekend in Inventor, je kunt dan mooi controleren of alles goed gaat. Nu kloppen alle waarden met de tekening maar tijdens het proefdraaien zie je op het scherm een afwijking tussen de twee laatste bewerkingen.( de diagonalen) Zou het kunnen dat dit aan de schermweergave ligt, ik heb geen mogelijkheid om het product nauwkeurig genoeg te kunnen meten.
Dit is de laatste versie van mijn macro, de variabelen die ik hier gebruik worden in de definitieve versie hernoemd.
Deze gebruik ik tijdens het proefdraaien omdat ze boven aan de lijst staan in het tabblad variabelen!

De G4 gebruik ik om de maten te kunnen kontroleren.

Code: Selecteer alles

sub afschuinen_test

#1=20   							;diameter
#2=30  							;hoek
#3=3								;schuinte
#4=0.5							;afname
#11=0.1							;toeslag
#5=[#1-[2*[#3+#11]]]   ;doeldiameter
#8=[tan [#2]]					;tangens hoek
#9=[[#3+[2*#11]]/#8]	;doel Zas
#10=[[#3-[#11*#8]]/#8];
#0=[#1+[2*#11]]			;bewaar diameter

WHILE [#1>[#5+[2*#11]+[2*#4]]]
	#6=[#1-[2*#4]]				;Xas
	#7=[[[#3-#4]/#8]-#11]	;Zas
	G1 X#6
	G1 Z-#7
	G4 P2
	G1G91X1
	G90
	G0Z0
	#3=[#3-#4]
	#1=#6
ENDWHILE



G1X[#1-[2*[#7*#8]]]
G4 P2
G1X[#0-[2*#11]]Z-#10
G4 P2
G1 Z[#11/#8]
g1X#5
G4 P2
g1 X#0Z-#9
G4 P2
G0 z0
M30

ENDSUB

6947

Dit is de Inventor tekening:

6946

Graag jullie visie op dit probleem!

KeesK
Gebruikersavatar
audiomanics
Donateur
Berichten: 5273
Lid geworden op: 28 feb 2007 09:31
Locatie: Appelscha
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door audiomanics »

Iedere keer als je de lus doorloopt trek je de toeslag van 0,1 er af.. dus na 5 keer zit je al op 0,5 ipv de 0,1 die je wil hebben..

Kees
<klik>... euh..test... 123.... einde test... uit.<klik>
Gebruikersavatar
hugo stoutjesdijk
Donateur
Berichten: 11995
Lid geworden op: 02 mar 2011 17:04
Locatie: elst (u)
Contacteer:

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door hugo stoutjesdijk »

Kom ik toch weer terug op m'n interpoleren.
Ik heb de parameter nummers een beetje aangepast, dingen die met elkaar te maken hebben probeer ik ook met de nummering aan elkaar te koppelen.

Code: Selecteer alles

Nieuwe opzet
#1=20   ;diameter
#2=30   ;hoek
#3=3    ; fase         
#4=0.5  ;afname
#5=0.1  ;toeslag

#11=#1/2 ; halve diameter #11 heeft relatie met #1
#12=[tan.[#2]] ;relatie met #2
#13=[#3-#5/cos[#2]] ; gecorrigeerde fase in X ( dus eigenlijk een delta-X maat )
#14=[#13/tan[#2]] ; gecorrigeerde fase in Z ( een delta-Z maat )
#21=#4 ; eerste snede

WHILE [#21>#13] ; we zitten nog steeds in radius te denken !
   #6=[2*[#11-#21]] ; radius terugrekenen naar echte diameter
   #7=[#21 / #13 * #14]   ;hefboom regel Zas
   G1 X#6
   G1 Z-#7
     G1 G91 X[2*#4] Z-[#4/#12] ; schuin door naar vorige diameter
   G90
   G0Z0 ; misschien beter Z0.5
   #21=[#21-#4]
  
ENDWHILE

en in deze opzet maak ik met hetzelfde gemak een radius op dat punt.

( ongestest, dus typefoutjes niet uitgesloten )
Ik ben voor meer techniek op school, maar dan wel vanaf groep 1 basischool.
keesk
Donateur
Berichten: 216
Lid geworden op: 16 aug 2008 18:44
Locatie: Weerdinge (bij MM)

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door keesk »

Hallo Hugo,
je werkt toch niet bij Overtoom hè?
Ik heb jouw programma geprobeerd, wat klein foutjes met haakjes, nu springt hij direct uit de WHILE loop omdat #13 > #21 dus dat omgedraaid. Met #21<#13 gebeurt er wel wat met dit als resultaat.
6950

Het gaat dus de verkeerde kant op! Hugo kun je iets meer uitleggen wat je je allemaal goochelt want zoals je waarschijnlijk wel begrepen hebt ben ik een wiskunde-dislect!
Dit is het programma van jou wat bij mij nu draait:

Code: Selecteer alles

Sub Nieuwe opzet

#1=20   ;diameter
#2=30   ;hoek
#3=3    ; fase         
#4=0.5  ;afname
#5=0.1  ;toeslag

#11=[#1/2] ; halve diameter #11 heeft relatie met #1
#12=[tan[#2]] ;relatie met #2
#13=[#3-#5/cos[#2]] ; gecorrigeerde fase in X ( dus eigenlijk een delta-X maat )
#14=[#13/tan[#2]] ; gecorrigeerde fase in Z ( een delta-Z maat )
#21=#4 ; eerste snede

WHILE [#21<#13] ; we zitten nog steeds in radius te denken !
   #6=[2*[#11-#21]] ; radius terugrekenen naar echte diameter
   #7=[#21 / #13 * #14]   ;hefboom regel Zas
   G1 X#6
   G1 Z-#7
     G1 G91 X[2*#4] Z-[#4/#12] ; schuin door naar vorige diameter
   G90
   G0Z0 ; misschien beter Z0.5
   #21=[#21-#4]
  
ENDWHILE

endsub
Ik hoop dat je e.a. uit wilt leggen,
KeesK
keesk
Donateur
Berichten: 216
Lid geworden op: 16 aug 2008 18:44
Locatie: Weerdinge (bij MM)

Re: Het "Bouwen" van Macro's voor USBCNC

Bericht door keesk »

@kees
dat klopt niet Kees, de punten hebben juist allemaal de goede maat. Ik heb in de tekening alle punten waar de beitel stopt de maat gezet en gecontroleerd met de DRO. Het idiote is nu dat alles klopt er zit alleen een afwijking in het beeld.
KeesK
Plaats reactie