Hírek:

Fontos tudnivalók a migrációval kapcsolatban, kérlek olvasd el:

A régi fórumról áthozott hozzászólásoknál a felhasználó neve adatvédelmi megfontolásokból véletlenszerűen generált értékekre lett  lecserélve. Ez akkor tud a valódi értékre visszaállni, ha az adott felhasználó a régi fórumon nyilatkozik, hogy beleegyezik az adatainak az új fórumra továbbításához, majd ezután itt a régi felhasználónevével és email címével regisztrál.
8~20 óra között, 1~30 percen belül megtörténik a jóváhagyás, 30 percenként ellenőrizd email fiókodat (SPAM-ot is) mindenképp kapsz mail-t, a sikeres regisztrácioról, vagy a hibáról és, hogy mi a teendőd.
Nézd meg  "A régi fórumról, az új fórumra költözés útmutatót."
A régi fórumon használt email címmel de más felhasználói azonosítóval érkező regisztrációs kérelmek törlésre kerűlnek.

Main Menu

Mach3 CNC

Indította gaben, 2024 április 09, 16:55

Előző téma - Következő téma

ORCA17

Ami a 3D-s tapintó praktikus oldala az, hogy nem fémes anyagok bemérésére is a jó.
Készítettem már olyan szerelő sablont, ami festett alkatrészekhez készült nem nagy fizikai igénybevételre.
Ott trükköznöm kellett(akkor még nem volt ilyen tapintóm) hogy egzakt módon vissza tudjak állni null pontra, tettem bele egy rézcsapot és kineveztem null pontnak.[#kacsint]
Az a bemérő az elektromos kapcsolat létrejöttének elvén működött.
... egy olyan világban, ahol bármi lehetsz, légy kedves!

2am4nwzib

Az  én ,,script 30-60mm-es átmérőkre.
------------------------------------------------------------


Rem   VBScript To center probe inside a pipe

If GetOemLed (825) <> 0 Then       'Check to see if the probe is already grounded or faulty
   Code "(Probe plate is grounded, check connection and try again)"
Else
   FeedCurrent = GetOemDRO(818)    'Get the current settings
   XCurrent = GetDro(0)
   YCurrent = GetDro(1)

   Code "G4 P1"         'Pause 1 second to give time to position probe plate
   Code "F4"         'slow feed rate to 4 ipm

Rem   Probe left
   
   XNew = Xcurrent - 3      'probe 30 mm to left
   Code "G31 X" &XNew
   While IsMoving()      'wait for the move to finish
   Wend
   XPos1 = GetVar(2000)      'get the probe touch location

   Code "G0 X" &XCurrent      'rapid move back to start point

Rem   Probe right
   
   XNew = XCurrent + 3      'probe 30 mm to right
   Code "G31 X" &XNew
   While IsMoving()
   Wend
   XPos2 = GetVar(2000)

   XCenter = (XPos1 + XPos2) / 2   'center is midway between XPos1 and XPos2
   Code "G0 X" &XCenter      'rapid move to the x center location

Rem   Probe up

   YNew = YCurrent + 3
   Code "G31 Y" &YNew
   While IsMoving()
   Wend
   YPos1 = GetVar(2001)

   Code "G0 Y" &YCurrent

Rem   Probe down
   
   YNew = YCurrent - 3
   Code "G31 Y" &YNew
   While IsMoving()
   Wend
   YPos2 = GetVar(2001)

   YCenter = (YPos1 + YPos2) / 2

Rem   move to the center
   
   Code "G0 Y" &YCenter
   While IsMoving ()
   Wend

   Code "F" &FeedCurrent        'restore starting feed rate
End If

ORCA17

Igen ezt töltöttem le én is[#kacsint]
Ha jól látom 6 mm a tapintó átmérője
... egy olyan világban, ahol bármi lehetsz, légy kedves!

dezsoe

A script szempontjából teljesem mindegy, hogy NO vagy NC az érzékelő, csak a beállításokban kell a Probe bemenet Active low pipáját be- vagy kikapcsolni. Maga a G31 azt figyeli, hogy a bemenet aktívvá váljon, függetlenül attól, hogy ehhez milyen jelszint tartozik.

ORCA17

Köszönöm a válaszod.[#kacsint]
Tudom amit taglalsz, mert van mind a kétféle (zár ill. szakít) elektronika de nem ez volt az eredeti kérdés [#integet2]
Az eredeti kérdésem azt próbálta felderíteni, hogy hol van az a kód(rész), ami az "ismétlést" határozza meg. Lásd alábbi bejegyzésem.
... egy olyan világban, ahol bármi lehetsz, légy kedves!

dezsoe

Tudom, mi volt az eredeti kérdés, viszont ezt írtad:

"Ami különbség a két eljárás között - már amit én használok és amit Te megmutattál - lényeges.
Én az elektromos megszakítás elvén működő eszközt használok és a videón az elektromos kapcsolás elvén működő eszköz szerepel."

Én erre válaszoltam, hogy a bemérő script szempontjából ez teljesen mindegy. :)

ORCA17

Elfogadom azt amit írsz, akkor nem a kódban kell keresni az "ismétlés" okát.
Akkor a kérdésem félig megválaszoltnak tekinthető...de a videó alapján, elég látványos volt a két működés közötti különbség, már mint a videó és az általam tapasztaltak között.

Szerinted hol a plusz mozgást előidéző kód rész? Talán magában a .set fájlban?
... egy olyan világban, ahol bármi lehetsz, légy kedves!

dezsoe

Este megnézem, mostmár kíváncsi vagyok a megfejtésre. :)

ORCA17

... egy olyan világban, ahol bármi lehetsz, légy kedves!

Béni

Nincs semmi varázslat a szkriptben.
Az írója szándéka szerint először a gép dinamikai képességei és a bemérő működési határai szerint megengedhető nagy előtolással (Feed1) durva bemérést végez, majd vissza mozogva kisebb előtolással (Feed2) finom bemérést.
Ezt mind a négy főirányban megteszi. Ez az ismétlés oka.
Mivel G31-el működik, korlátolt a tapintó átmérő és a mért furat átmérő legkisebb különbsége. A helyes működéshez a G31-ben programozott  valós mozgásnak meg kell haladnia az 1/100-ad inch-et. (0,254 mm).
Ha a mérés pontosságát fontosnak tekintjük, akkor a szkript ennek a kitételnek nem teljesen felel meg, ha nem a középpontból indítjuk.

Béni

Helyesebben: "... majd vissza mozogás után kisebb előtolással (Feed2) finom bemérést."

2am4nwzib

Méghogy a Mach3 nem  olvassa be a I,J,K,R (protokollt)
forrás  tutorial (PDF)
itt
az én gépemen is....(Swiss_Screen)

  

ORCA17

Bár néhányan segítőkészek voltak egy panel marása kapcsán a 3D tapintómhoz, de végül magam faragtam egyet mert még nem érkezett meg.[#nemtudom]
11 X 16 mm méretben. A vastagsága 6mm.
Az egészet egy kimart plexi "gallérba" besűllyesztettem.

Az összeállításnál szempont volt a kapcsolódó vezeték csatlakozós kivitelű megvalósítása. Ezt egy, a modellezésben használatos szervó vezetékkel oldottam meg.
Értelem szerűen, ha nincs a vezeték bedugva, nem világit egyik LED sem, viszon akadály nélkül körbe forgatható a tapintó fej századon belüli bekalibrálásához. Nagyon zavart a bolti fix vezetékes megoldás.
 
Továbbá ment a polémia a scriptet illetően a "duplázásról" -tulajdon képpen ez kapcsolódik ténylegesen a topic címéhez-  végül azt is sikerült összeraknom - internet/agyalás útján.

Tökéletesen műxik[#kacsint]

      
... egy olyan világban, ahol bármi lehetsz, légy kedves!

2am4nwzib

Ezeket változtatni????

XCenter = (XPos1 + XPos2) / 2   'center is midway between XPos1 and XPos2
   Code "G0 X" &XCenter      'rapid move to the x center location
XPos1 = GetVar(2000)      'get the probe touch location
XPos2 = GetVar(2000)

ORCA17

Ezzel a scriptel dolgozom

Rem   VBScript To center probe inside a pipe

If GetOemLed (825) <> 0 Then       'Check to see if the probe is already grounded or faulty
   Code "(Probe plate is grounded, check connection and try again)"
Else
   FeedCurrent = GetOemDRO(818)    'Get the current settings
   XCurrent = GetDro(0)
   YCurrent = GetDro(1)

   Code "G4 P1"         'Pause 1 second to give time to position probe plate
   Code "F4"         'slow feed rate to 4 ipm

Rem   Probe Left
   
   XNew = Xcurrent - 3      'probe 3 inches to left
   Code "G31 X" &XNew
   While IsMoving()      'wait for the move to finish
   Wend
   XPos1 = GetVar(2000)      'get the probe touch location

   Code "G0 X" &XCurrent      'rapid move back to start point

Rem   Probe Right
   
   XNew = XCurrent + 3      'probe 3 inches to right
   Code "G31 X" &XNew
   While IsMoving()
   Wend
   XPos2 = GetVar(2000)

   XCenter = (XPos1 + XPos2) / 2   'center is midway between XPos1 and XPos2
   Code "G0 X" &XCenter      'rapid move to the x center location

Rem   Probe up

   YNew = YCurrent + 3
   Code "G31 Y" &YNew
   While IsMoving()
   Wend
   YPos1 = GetVar(2001)

   Code "G0 Y" &YCurrent

Rem   Probe down
   
   YNew = YCurrent - 3
   Code "G31 Y" &YNew
   While IsMoving()
   Wend
   YPos2 = GetVar(2001)

   YCenter = (YPos1 + YPos2) / 2

Rem   move To the center
   
   Code "G0 Y" &YCenter
   While IsMoving ()
   Wend

   Code "F" &FeedCurrent        'restore starting feed rate
End If
... egy olyan világban, ahol bármi lehetsz, légy kedves!