CNC ismet
Vajk Fekete
halaloszto at yahoo.co.uk
Wed Jul 20 11:55:58 CEST 2005
hi!
Nem is arra irtam amit irtam, hanem erre:
"Egészen nagy vonalakban: veszed a vonal tangensét, fixpontosan ábrázolod.
Minden X lépésnél a tangenst hozzáadod az Y akkumulátorhoz és akkor
lépsz Y-ban, ha az egészrész változott. A maximális távolság határozza
meg, hogy milyen pontosan kell ábrázolni a tangens. Akkor működik jól,
ha a tangens <= 1. Ha nem így van, akkor fel kell cserélni a tengelyeket.
"
hol van a c progi?
vajk
Nya'ri Viktor wrote:
> Hello, Vajk!
>
> Akkor kérlek nézd meg mégegyszer azt az egyszerü rutint, amit irtam
> tegnap, mert abban bizony nem soxorozódik össze.
> Pont ez a DDS lényege is:
> Ha van mondjuk egy 50MHz-es oszcillátorom, egy 32bites
> fázis-akkumulátorom és egy 4096 cellás eprom szinusztáblám, akkor nem
> csak az 50MHz egésszámú leosztott frekijeit tudom előállítani, hanem
> pl. 14372.251 Hz-et is és 14372.263 Hz-et is; azaz 0.0116 Hz-es
> (5*10^7 / 2^32) lépésekben bármit, max 25 MHz-ig.
> Ha érdekel, ajánlom figyelmedbe pl. az AD9835 DDS IC-t; speciel pont
> erről beszéltem, én is ezt használom szinuszgenerátorként.
> http://www.analog.com/en/prod/0,2877,AD9835,00.html
> Ugyanezen analógiával megoldható az egyenes húzása is, +-1 step
> hibával, bármekkora távolságon, bármekkora felbontással. (lehet hogy
> pont ezt hívják DDA-nak, kb. ezt írta le Palasik Sándor)
> Nézd át mégegyszer azt a pici C progit!
>
> Viktor
>
> Vajk Fekete wrote:
>
>> nem az osztas a gond, hanem hogy eloszor kiszamolod az egy lepes
>> dx-re juto dy-t, utanna meg azokat adogatod ossze. igy az osztas
>> hibaja jol megsokszorozodik. minel nagyobb felbontasu a geped/nagyobb
>> felbontasu a rasztered, annal nagyobb pontossagu valos szamabrazolas
>> kell. Ugye 0.01mm felbontasnal egy 20cm negyzet atlojat ha rajzolod
>> az x lepesek szama 2000 lesz, tehat ha mondjuk 4 tizedesjegy pontosan
>> szamolsz, akkor a dy-od hibaja az elejen az osztasnal rossz esetben
>> 5e-5, az 2000-szer osszeadva pont 0.01mm, tehat a vegere egy lepesben
>> el is van rontva a dolog. Ha a 20cm nem 20cm, es a lepesenkenti
>> felbontas kisebb, a helyzet fokozodik. Egy ipari robotnal, ahol
>> meteres elmozdulasok vannak es a szervo jeladojanak a lepese lehet
>> mondjuk 0.005mm mar igen komoly aritmetikak kellhetnek. (a pozicio
>> egeszreszenek tarolasa kapasbol 5 jegy mm-ben, es a fentiek miatt a
>> tortreszre is kell min 6-7 jegy, az mar 12 jegy pontossag. mennyi is
>> a double? az meg jo kell legyen akkor ugye?)
>>
>> vajk
>>
>> Nya'ri Viktor wrote:
>>
>>>
>>>
>>> Palasik Sandor wrote:
>>>
>>>>> Nagy vonalakban; mi ez a DDA algoritmus?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Egészen nagy vonalakban: veszed a vonal tangensét, fixpontosan
>>>> ábrázolod.
>>>> Minden X lépésnél a tangenst hozzáadod az Y akkumulátorhoz és akkor
>>>> lépsz Y-ban, ha az egészrész változott. A maximális távolság
>>>> határozza meg, hogy milyen pontosan kell ábrázolni a tangens. Akkor
>>>> működik jól, ha a tangens <= 1. Ha nem így van, akkor fel kell
>>>> cserélni a tengelyeket.
>>>> Hátránya: egyszer osztani kell a legelején, valamint az Y
>>>> akkumulátor kétszer annyi bites, mint amekkorák a koordnináták.
>>>>
>>>> Ezért jobb szerintem a Bresenham algoritmus, mert ott nem kell
>>>> osztani és nem kell kétszeres pontosság sem, valamint könnyű vele
>>>> szép, a középpontra szimmetrikus vonalakat rajzolni. Persze, ha van
>>>> elég bit a tangens ábrázolására, a DDA és a Bresenham pontosan
>>>> ugyanazt adja.
>>>>
>>> Na hát akkor ez kb. ugyanaz, mint a DDS magja, amit pár levéllel
>>> ezelőtt le is írtam; lehet hogy a DDA-ban és DDS-ben a DD
>>> (DirectDigital asszem) ugyanazt jelenti?
>>> Márpedig amit leirtam, annál nem nagyon tudok egyszerübbet, és még
>>> osztani sem kell benne...
>>>
>
> -----------------------------------
> Szponzorunk: http://tonerbolt.hu/
>
>
More information about the Elektro
mailing list