kompenzace zvlnění povrchu

ledvinap
Příspěvky: 793
Registrován: 8. 11. 2009, 4:40
Bydliště: Plzen

13. 11. 2012, 12:33

Thomeeque píše:To ti věřim :)
- a kecal jsem i do třetice a to s tím, že voronoi.computeDelaunayTriangulation(points) má nějaký problém s pořadím bodů v points. Problém byl v tom, že na generování probe.txt používám stále ngc od toho Rusa a ten generuje pro každou XY souřadnici dva řádky a to navíc s různým Zkem, to by muselo zblbnout každej program, kterej to nečeká :) Je to nevýhoda jinak podle mě velice dobrého nápadu využít nejprve relativně rychle jedoucí G38.3 dolu a následně pomalu jedoucí G38.5 nahoru (rychle najde dotek nahrubo a najemno už hledá jen kdy se dotek zase ztratí, což je raz dva, protože je to blízko). Problém je, že polohu do probe.txt hodí obě G38ky. Tak jsem si ten probe2stl skript upravil tak, aby bral jen sudé řádky, od tý doby voi·là ;)
T.
Jen drobnost - je celkem nestastne upravovat probe2stl, linux uz obsahuje nastroje, ktere to umi lepe (filozofie ze kazdy nastroj dela pokud mozno jen jednu vec, ale dela ji dobre):

Kód: Vybrat vše

awk '(NR%2)==0' probe.txt | probe2stl [-i inifile] | stlcorr --load
pro liche radky:

Kód: Vybrat vše

awk '(NR%2)==1' probe.txt
Uživatelský avatar
Thomeeque
Příspěvky: 8868
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

13. 11. 2012, 12:53

fupe píše:snad sem ti to naznacil srozumitelne.
Ano, prosím! A opět mockrát děkuju! :)
fupe píše: A protoze tady u teto probe kinematiky uz zalezi kde zrovna stroj je, aby sedela ta korekce v plose, tak pouziva i ty jointy. U trivkins taky, ale tam je to jedna k jedny a nezalezi na posunuti, tak to ani nezobrazuje.
Mozna ze jenom nemas zhoumovanou masinu, nebo spis nejsi prepnutej do world modu. Joggovani samozrejme funguje i bez home ale pokud si v joint modu, tak se Z nemuze hybat.... neuplatnuje se jeste kinematika.
M
Zahoumováno jsem určitě měl, ale asi jsem nebyl ve světovym módu (celou dobu tam bylo Joint 0 1 2), zkusím večer a poraportuji, díkes! T.
ledvinap píše:Jen drobnost - je celkem nestastne upravovat probe2stl, linux uz obsahuje nastroje, ktere to umi lepe (filozofie ze kazdy nastroj dela pokud mozno jen jednu vec, ale dela ji dobre):
Jj, to dává smysl, díky!
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
Thomeeque
Příspěvky: 8868
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

13. 11. 2012, 9:30

Tak už mi to i kompenzuje, juch, chtělo to opravdu jen to přepnutí do world módu :) Akorát si na to přepínání budu muset chvíli zvykat a vůbec si to celý nějak vychytat, první pokus málem skončil destrukcí nástroje :roll:
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
Thomeeque
Příspěvky: 8868
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

19. 11. 2012, 12:42

Ještě jsem s tím chvíli experimentoval, pak jsem vytvořil jeden plošňák a šel od toho, protože jsem se potřeboval věnovat něčemu jinému, ale slušelo by se napsat poslední poznatek, který byl, že kompenzace fungovala z nějakého důvodu inverzně (proto mi to právě málem zničilo tenkrát to pero - tam, kde mělo Z-ko jít od materiálu dále, šlo naopak blíže, takže se pero do čuprexu pěkně s chutí zarylo). Protože už mě tlačil čas, nijak zvlášť jsem to nezkoumal a vyřešil to dalším dočasným hackem probe2stl skriptu, kde jsem Z-ko při importu z probe.txt násobil -1. Myslím, že delta-z měla orientaci správnou, otáčelo se to někde potom, ale ruku do ohně za to nedám, ještě bych na to případně koukl, pokud by to někoho zajímalo a chtěl tomu přijít na kloub.

T.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

19. 11. 2012, 2:02

Je pravda, ze sem to testoval jenom jako simulaci bez opravdove masiny, takze tuto drobnost sem prehlidnul.
koukal sem jestli sedi korekce Z v danem miste a nic vic, ta sedela.
mozna zkus otocit znaminka u obou transformaci v probekins.c
pos->tran.z = joints[2] + (*(haldata->enable) ? z_correct(joints[0], joints[1]) : 0.0);
misto plus dat minus a naopak u
joints[2] = pos->tran.z - (*(haldata->enable) ? z_correct(pos->tran.x, pos->tran.y) : 0.0);
zmenit na plus

Martin
Uživatelský avatar
Thomeeque
Příspěvky: 8868
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

19. 11. 2012, 9:01

Díky, Martine, až se k tomu zase dostanu, v první řadě zkontroluju, že nekecám s tím delta-z a pak případně zkusím tu změnu v kódu. Ale byl jsem přesvědčenej, že je to něco konfiguračního na mojí straně, ani ve snu mě nenapadlo, že by to mohlo být špatně přímo v probekins (zrovna tohoto by si autor přece musel všimnout.. nebo kdokoliv, kdo by to pak používal..?). No, uvidíme..
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
fupe
Příspěvky: 638
Registrován: 27. 5. 2008, 9:10
Bydliště: Praha

20. 11. 2012, 8:50

Thomeeque píše: (zrovna tohoto by si autor přece musel všimnout.. nebo kdokoliv, kdo by to pak používal
Aby si se nedivil,
v LINUXCNC je mozny vsechno.
Vetsina vyvojaru, ale predevsim ta za velkou louzi, produkujou obrovsky mnozstvi kodu, ale bohuzel s obrovskym poctem chyb.
Stane se, ale me spis mrzi, ze presto ze jim tu chybu najdes a upozornis je, tak se neobtezujou ji opravit natoz odpoveded.
Treba vcerejsi oprava
http://git.linuxcnc.org/gitweb?p=linuxc ... 09b7ce8cce
na kterou sem upozornoval oba dva autory 27.10.2011 bez jedine odezvy. Je to sice kravina, ale par hodin ti to zabere, nez zjistis proc ti to nefunguje, kdyz to vygeneroval konfigurator.
Radek-B by asi taky mohl vypravet.
Ale abych nekrivdil vsem vyvojarum, tak zrovna autor toho probekins reaguje nejen na nalezene chyby
http://git.linuxcnc.org/gitweb?p=linuxc ... 13c433d116,
ale dokonce mi na pockani dopsal nektere mnou pozadovane funkcionality.
abych byl konktretni, tak sem ho pozadal o doplneni parametru Q (timeout v sekundach) u funkce M19 - orientace vretena.
Za dva dny to dopsal a jeste podekoval za pripominky.

To ale neznamena ze nemuze obcas udelat chybu. Takze je klidne mozny, ze ses druhej blazen na svete, kterej to pouzil a prvni blazen kterej to pouzil v praxi na masine a opravdu je v tom chyba. Mozna ji nekdo uz nasel, ale obesel to upravou scriptu jako ty a autor se o ni nedozvedel.
Jak rikam, v LINUXCNC jemozny vsechno :-) presto si myslim, ze je to uzasnej program...

Martin
Uživatelský avatar
Thomeeque
Příspěvky: 8868
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

20. 11. 2012, 10:51

Myslíš, že to autor nepsal primárně pro sebe, že to sám nepoužívá? No, možný to je..
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
oscar
Příspěvky: 1190
Registrován: 2. 5. 2010, 8:50
Bydliště: Perníkovice

26. 11. 2012, 2:54

kdybys chtel na te vyvojove verzi pouzit gladevcp

stahnout si original repository
git clone git://git.linuxcnc.org/git/emc2.git" onclick="window.open(this.href);return false; emc2-dev

pouzit z nej lib/python/gladevcp/hal_gremlin.py

nainstalovat python xlib
apt-get install python-xlib

a spustit
~/linuxcnc-probe/configs$ linuxcnc sim/gladevcp/gladevcp_tab.ini
Uživatelský avatar
Thomeeque
Příspěvky: 8868
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

26. 11. 2012, 3:44

Díky, příležitostně koštnu :)
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
oscar
Příspěvky: 1190
Registrován: 2. 5. 2010, 8:50
Bydliště: Perníkovice

14. 3. 2013, 2:46

Takze vlastni zkusenosti:

upravil jsem si smartprobe.ngc z distribuce tak aby mi logoval absolutni souradnice masiny x,y

Kód: Vybrat vše

( This program repeatedly probes in a regular XY grid and writes the    )
( probed location to the file 'probe-results.ngc' in the same directory )
( as the .ini file                                                      )
( relative coordinates         #5061 #5062 #5063                        )
(Configuration section)
G21   (Milimeters)
F600    (probe speed)

#1=-20.	(X start)
#2=20.	(X increment)
#3=9.	(X count)

#4=-6.	(Y start)
#5=20.	(Y step)
#6=7.	(Y count)

#7=5. (Z safety)
#8=-5. (Z probe)
(End configuration section)

(LOGOPEN,probe-results.ngc)
#9=0 #10=0
G0Z#7
O1 while [#9 lt #6]
    #10=0
    G0 Y[#4+#5*#9]
    O2 while [#10 lt #3]
        O3 if [[#9/2] - fix[#9/2] eq 0]
            #11=[#1+#2*#10]
        O3 else      
            #11=[#1+#2*[#3-#10-1]]
        O3 endif
        (#11 is X target)
        #5070=1
        O4 while [#5070 NE 0]
            G38.5 z#7
            G38.3 x#11
        O4 endwhile

        G38.2Z#8
	#501 = [#<_x>+#5221] ( to abs coords )
	#502 = [#<_y>+#5222] ( to abs coords )


        (LOG,#501 #502 #5063) 
        #10=[#10+1]
    O2 endwhile
    G0Z#7
    #9=[#9+1]
O1 endwhile

(LOGCLOSE)
G0Z#7
G0X#1Y#4
M2
vystupem je probe-results.ngc

Kód: Vybrat vše

245.543521 191.858321 0.920191
225.543521 191.858321 1.248686
205.543521 191.858321 1.371344
185.543521 191.858321 1.439958
165.543521 191.858321 1.430386
145.543521 191.858321 1.500725
125.543521 191.858321 1.589677
105.543521 191.858321 1.630114
85.543521 191.858321 1.689988
85.543521 211.858321 1.750184
105.543521 211.858321 1.690089
125.543521 211.858321 1.600058
145.543521 211.858321 1.470142
165.543521 211.858321 1.370203
185.543521 211.858321 1.399980
205.543521 211.858321 1.370052
225.543521 211.858321 1.250084
245.543521 211.858321 0.860021
spachal jsem konvertor zero-probe.py ktery to posune k nule a otoci smysl Z

Kód: Vybrat vše

print('Zero set probing Z coordinate from probe-results.ngc to zero-probe-results.ngc')
data = []
smallest = 1000

with open('probe-results.ngc') as f:
    for line in f:
        axes = line.split()
        data.append(axes)
        if smallest > float(axes[2]):
            smallest = float(axes[2])
print('Smallest value: ' + "{0:6f}".format(smallest))

with open('zero-probe-results.ngc', 'w') as f:
    for line in data:
        f.write(line[0] + ' ' + line[1] + ' ' + "{0:6f}".format(-1* (float(line[2])-smallest)) + '\n')

print('Done')
vysledkem je zero-probe-results.ngc

Kód: Vybrat vše

245.543521 191.858321 -0.060170
225.543521 191.858321 -0.388665
205.543521 191.858321 -0.511323
185.543521 191.858321 -0.579937
165.543521 191.858321 -0.570365
145.543521 191.858321 -0.640704
125.543521 191.858321 -0.729656
105.543521 191.858321 -0.770093
85.543521 191.858321 -0.829967
85.543521 211.858321 -0.890163
105.543521 211.858321 -0.830068
125.543521 211.858321 -0.740037
145.543521 211.858321 -0.610121
165.543521 211.858321 -0.510182
185.543521 211.858321 -0.539959
205.543521 211.858321 -0.510031
225.543521 211.858321 -0.390063
245.543521 211.858321 -0.000000
nacteni do linuxcnc

Kód: Vybrat vše

mc@emc-desktop:~/linuxcnc/configs/mesa_probe$ probe2stl -z 1 -i mesa.ini <zero-probe-results.ngc |stlcorr --load -d
pouzil jsem i konfiguracni soubor masiny - probe2stl si natahne jeji rozjezdy a vygeneruje kompenzaci tak aby se z ni nevyjelo.

+ vizualizace

Kód: Vybrat vše

emc@emc-desktop:~/linuxcnc/configs/mesa_probe$ probe2stl -z 0 -i mesa.ini <zero-probe-results.ngc | stlvis -b 0,0,250,250
+ jsem si probekins zkompiloval s verzi 2.5 a udelal do gladevcp bocni panel pro ovladani.
probekins.png
a cela ta saskarna jenom kvuli tomu ze nedokazu upnout hlinikovy plech rovne a vzdy se mi prohne.
Uživatelský avatar
Thomeeque
Příspěvky: 8868
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

14. 3. 2013, 3:02

Luxus! Ten boční panel stáhneme kde, prosím? :)
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
oscar
Příspěvky: 1190
Registrován: 2. 5. 2010, 8:50
Bydliště: Perníkovice

14. 3. 2013, 3:17

probekins.zip
(12.63 KiB) Staženo 286 x
side_panel\ definice side-panelu
- side-panel-pk.hal - napojeni ui na VFD a probekins
- side-panel.ui - vlastni panel - edituje se napr v glade (nezapomenout na rip-enviroment)

na prvni zalozce je status vretene, to si kdyztak vykousnete.

mesa_probe\
mesa.ini - vlastni konfigurace - dulezite je:

Kód: Vybrat vše

[DISPLAY]
# add GladeVCP panel where PyVCP used to live:
GLADEVCP=-u ../side_panel/side-panel.py ../side_panel/side-panel.ui
a

Kód: Vybrat vše

[HAL]
HALUI = halui
HALFILE = mesa.hal
POSTGUI_HALFILE= ../side_panel/side-panel-pk.hal
jinak tam nic neni.
tmxatcoxlab
Příspěvky: 200
Registrován: 12. 8. 2010, 3:24

15. 3. 2013, 7:42

moc hezka prace! klobouk dolu! ;]
zeptam se, jakou k tomu pouzivate sondu?
melsoft
Příspěvky: 366
Registrován: 25. 1. 2012, 5:41

6. 4. 2013, 8:06

Možná je to off-topic, protože se jedná o odlišný způsob vypořádání se zvlněním cuprextitu (povrchu) ale já používám způsob mechanický, nikoliv softvérový.
Kdysi jsem si koupil tzv. tiefenregler (regulátor hloubky) a haftgravurmatte (lepivá gumová podložka). viz zde: http://www.thiemig.de/" onclick="window.open(this.href);return false;
Ten regulátor hloubky se dá použít pro vřetýnka Proxxon (na plošňáky stačí) a slouží k upnutí vřetena. Šroubovacím "nosem" se nastaví míra vykouknutí špičky nástroje (třeba 0,2mm) a dále se na něj dá připojit odsávání, což je v případě gravírování sklolaminátu nezbytnost (jinak drobné částice skelných vláken mohou způsobit silikózu resp rakovinu). Gumová podložka je z obou stran lepkavá, takže desku cuprextitu pevně drží a přitom pod pevně dotlačeným kluzným "nosem" tiefenregleru malinko uhne (dolů). Takže stačí s osou Z najet do záběru pár setin víc než je okamžik dotyku kluzného nosu s mědí cuprextitu a dá se krásně frézovat s konstantní stopu nástroje.
Gumová podložka je dále výhodná při vrtání plošňáku, protože vrták nejde do tvrdého materiálu. Sice se navrtáním mírně poškodí ale i po několika desítkách zhotovených spojů pořád dobře drží. Při zaprášení frézovaným materiálem se dá opláchnout vodou a lepivost se obnoví.

Zkrátka, řečeno slovy klasika: "Jak primitivní, leč jak účinné!"
tief01.jpg
Na obrázku je dále vidět použití kousku lineárního vedení na ose Z, umožňujícího vřetenu volně plout a přitlačovat se do záběru vlastní vahou vřetene. Já toto nepoužívám, prostě ten tiefenregler naperu pár setin proti gumě (přes plošňák) a hotovo.
tief02.jpg
tief_any.gif
tief_any.gif (32.18 KiB) Zobrazeno 8464 x
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“