Sveikiname visus dzin-budizmo gerbėjus. Siūlau susikonstruoti šį maldų mechanizmą.

Labai ramina nervus, tiesiog galima sukti rankose ir jūsų ramybės ir dzin koeficientas tik kyla ir kyla. Dėmesio, jei šalia stovi kokie nors ne dzin budizmo pasiekėjai tai tada galimos problemos- mašinėlė kažkaip sugeba ištraukti kantrybę iš aplinkinių. Todėl tie pašaliniai gali jus aprėkti, švelniai primušti ar net atimti kulto priemonę. Būkite saugūs.
Čai filmukas nekokybiškas, kuris rodo, kad visdėlto ji sukasi.
O jei rimčiau, pabaigiau, bent jau kiek man reikėjo, dantračių paišymo softą. Po daugybės metų panaudojau mokyklines žinias apie sinusus, kosinusus ir net arcsinusus. Eiktupeklon!

Levai, o minčių apie planetarinį kelių pakopų reduktorių nekilo minčių daryti? Žinoma, nauda iš tokio dalyko tik sportinis interesas kaip ir šio Dzin budizmo aparato 😀 Aišku, tik ten daugiau skaičiavimų.. 🙂
Ei, išduok paslaptį, kur ten sinusai, kosinusai ir arcsinusai naudojami? Ar tik ne dantų profilių skaičiavimams?
Esu matęs laikrodžių padarytų iš tokių medinių dantratukų 🙂
Reduktorių galima padaryti, tik reikia užsiimti. Ir dar softa patobulinti, nes jam reikia “išvirkščio” dantračio.
Sinusai, kosinusai naudojami skaičiuoti krumplio pradžiai ir galui. Dantratis skaičiuojamas turint tik krumplio plotį ir krumplių skaičių. Iš to pasiskaičiuoja darbinis apskritimo ilgis ir dantračio diametras. CorelDraw dirba su Dekarto koordinatėm, o kreivės brėžiasi dar pridedant kampo parametrą laipsniais.
Arcsinusas naudojamas pasikaičiuoti “stipino” padėčiai- stipino centras eina per apibrėžtus laipsnius, tačiau jo koordinatės pasislinkusios per jo storį. Gaunasi kaip ir pasislinkęs spindulys. Žodžiu reikia pagal stačius trikampius skaičiuoti stipino pradinį kampą…bla bla. Corelio basicas skaičiuoja viską radianais, o pats korelis dirba su laipsniais. Šita painiava daug problemų sukėlė.
Kas juokingiausia- softo source kodas tik 8 kilobaitų ilgio! Ir čia su komentarais.
arba da Vinci stilium:

Gal kam reikės, source kodas:
Private Sub CommandButton1_Click() Unload Me End Sub Public Function dcos(ByVal deg As Double) As Double dcos = Cos(deg * 3.14159265358979 / 180) End Function Public Function dsin(ByVal deg As Double) As Double dsin = Sin(deg * 3.14159265358979 / 180) End Function Public Function arcsin(ByVal x As Double) As Double arcsin = (Atn(x / Sqr((-x) * x + 1))) * 180 / 3.14159265358979 End Function Private Sub gearz_Click() ' dimai Dim n, w, h, ax As Single Dim x, y, x1, y1, x2, y2 As Double Dim i, l, r, s As Double Dim d1, d2, d3, d4 As Double Dim trap, lase As Single Dim round As Single Dim tmp As Double Dim spoke As Integer Dim spr1, spr2 As Double Dim spwidth As Single 'corelio subtilybes ActiveDocument.Unit = cdrMillimeter Set doc = ActiveDocument doc.Unit = cdrMillimeter dx = DrawingOriginX dy = DrawingOriginY ActiveDocument.ClearSelection Set curva = Application.CreateCurve(ActiveDocument) ' cia jau korelio reikalas ' reiksmiu is formos paemimas, korekcija n = Val(g1ts.Value) ' dantu kiekis w = Val(pitchs.Value) ' dancio plotis h = Val(heights.Value) ' dancio aukstis ax = Val(axis.Value) ' asies diametras trap = Val(trapezoids.Text) lase = Val(laser.Text) round = Val(rounds.Text) spoke = Abs(Int(Val(spokes.Text))) spr1 = Val(spr1s.Value) spr2 = Val(spr2s.Value) spwidth = Val(spwidths.Value) 'fixai If lase < 0 Then lase = 0 If lase > 5 Then lase = 5 'asis If ax < 0 Then ax = 0 ' pradiniai skaiciavimai l = n * w * 2 ' dantracio darbinis ilgis dantys * ilgis du kartus, nes ir duobute r = l / 3.14159265358979 / 2 ' darbinio apskritimo spindulys s = 360 / n / 2 ' vienas krumplis ir viena duobute turi 3 koordinates. +4 koordinates konusams. Cia elemento laipsniai ' apatinio krumplio kampo padidejimas "di". Standartinis laipsnis yra s ' taciau krumplis turi tilpti i skylute. Todel isorini reikia mazinti, o vidini didinti ' dabar reikia paskaiciuoti kiek laipsniu bus kampas, kad krumplio plotis butu tas pats kaip ir viduryje. d1 = w * 360 / 2 / 3.14159265358979 / (r - h / 2) d2 = w * 360 / 2 / 3.14159265358979 / (r + h / 2) 'jei pjaunam lazeriu, dalis nudega. Cia nudegimo kampas. d3 = lase * 360 / 2 / 3.14159265358979 / r ' centre d4 = lase * 360 / 2 / 3.14159265358979 / (r - h / 2) ' apacioje ' taip gaunam kiek laipsniu yra apatinis kampas. ' o jo skirtumas nuo vidutinio, per mazgus d1 = ((s - d1) / 2) * (1 - trap / 10) - ((s - d1) / 2) * (1 - trap / 10) * r / 50 d2 = (-(d2 - s) / 2) * (1 + trap / 10) + ((s - d1) / 2) * (1 - trap / 10) * (2 + n / 5) / r 'spokes If spoke > 0 Then spr1 = spr1 + ax / 2 'mazasis spr2 = r - h / 2 - spr2 ' dydysis spdeg = 360 / spoke Dim alpha1, alpha2, alpha3, alpha4 As Double Dim s5 As Shape Dim kamputis1, kamputis2 As Double If (spwidth / 2 / spr1) < = 1 Then kamputis1 = arcsin(spwidth / 2 / spr1) Else kamputis1 = 0 If (spwidth / 2 / spr2) <= 1 Then kamputis2 = arcsin(spwidth / 2 / spr2) Else kamputis2 = 0 For i = 0 To spoke - 1 alpha1 = spdeg * i + kamputis1 alpha2 = spdeg * i + kamputis2 alpha3 = spdeg * i - kamputis1 alpha4 = spdeg * i - kamputis2 x1 = (spr1) * dcos(alpha1) + dx y1 = (spr1) * dsin(alpha1) + dy x2 = (spr2) * dcos(alpha2) + dx y2 = (spr2) * dsin(alpha2) + dy Set spath = curva.CreateSubPath(x1, y1) ' Create a SubPath. Kreives pradzios taskas. spath.AppendLineSegment x2, y2 x1 = (spr1) * dcos(alpha3) + dx y1 = (spr1) * dsin(alpha3) + dy x2 = (spr2) * dcos(alpha4) + dx y2 = (spr2) * dsin(alpha4) + dy '' Set spath = curva.CreateSubPath(x1, y1) ' Create a SubPath. Kreives pradzios taskas. spath.AppendLineSegment x2, y2 'kreivumas Set s5 = ActiveLayer.CreateEllipse2(dx, dy, spr1, spr1, alpha1, alpha3 + spdeg, False) Set s5 = ActiveLayer.CreateEllipse2(dx, dy, spr2, spr2, alpha2, alpha4 + spdeg, False) Next i End If 'paisom dantracio krumpliukus i = 0 x = r * dcos(i + d3) + dx y = r * dsin(i + d3) + dy ' pradines krumplio koordinates Set spath = curva.CreateSubPath(x, y) ' Create a SubPath. Kreives pradzios taskas. For i = 0 To 360 - s Step s * 2 ' zemyn i duobute (1): tmp = i + d1 + d4 x = (r - h / 2) * dcos(tmp) + dx y = (r - h / 2) * dsin(tmp) + dy spath.AppendCurveSegment x, y, 0, 0, 0, 0 ' zemyn, desiniau (2): tmp = i + s - d1 - d4 x = (r - h / 2) * dcos(tmp) + dx y = (r - h / 2) * dsin(tmp) + dy spath.AppendCurveSegment x, y, 0, 0, 0, 0 ' aukstyn, bazinis taskas (3) tmp = i + s - d3 x = (r) * dcos(tmp) + dx y = (r) * dsin(tmp) + dy spath.AppendCurveSegment x, y, 0, 0, 0, 0 'aukstyn, (4): tmp = i + s + d2 x = (r + h / 2 + lase) * dcos(tmp) + dx y = (r + h / 2 + lase) * dsin(tmp) + dy spath.AppendCurveSegment x, y, round, tmp, 0, 0 ' desinen, krumplio virsus. (5) tmp = i + s + s - d2 x = (r + h / 2 + lase) * dcos(tmp) + dx y = (r + h / 2 + lase) * dsin(tmp) + dy spath.AppendCurveSegment x, y, 0, 0, 0, 0 ' zemyn, baze. (6): tmp = i + s + s + d3 x = (r) * dcos(tmp) + dx y = (r) * dsin(tmp) + dy spath.AppendCurveSegment x, y, 0, 0, round, tmp Next i spath.Closed = True Set sh = ActiveLayer.CreateCurve(curva) ' grupavimas ir asis If ax <> 0 Then Set sh = ActiveLayer.CreateEllipse(dx - ax / 2, dy - ax / 2, dx + ax / 2, dy + ax / 2) ActiveLayer.Shapes(1).AddToSelection ActiveLayer.Shapes(2).AddToSelection Dim s1 As Shape Set s1 = ActiveSelection.Group End If Dim OrigSelection As ShapeRange Set OrigSelection = ActiveSelectionRange ActiveSelection.ObjectData("Name").Value = "CogGear" Set sh = Nothing ' ActiveDocument.ClearSelection End SubO kodėl ten vienas dantratukas “tranzuoja”? 😀
gal turi sita reikala dxf formatu?
patiko! tai ant cnc issipjauciau.
pats matau su lazeriu pjovei?
Neturiu jokiam formate- tie dantračiai tai gamybinės atraižos testuojant rašomą softą.
Galima susigeneruoti per naujo, svarbu tik krumplio dydį visur vienodą išlaikyti.