Rabu, 11 Februari 2026

piout ups roling

5 gnd
3 puldown
4 5vv
1 ngambng
2 led hijau
6 xtall
7 xtall
8 relay 4
9 relay3
10 relay 2
11 rely 1
12 curiga timer krn bnyk kpsitor
13 led merah
15sensor out ac out inverter
17puldown 
14 led kuning
18 kpsitor
19 u3 no2
22 puldown 
23 Puldown
24 pullup
25 sepertinya pwm trhubung ke jmp21
26 sensor batrai
27 puldown
2.8 
29 swpertinya pw




Selasa, 18 Maret 2025

seting flatcam

Isolate routing
Tool diameter 0.003
Widt passws 2
Pas overlap 0.9
Combinan dicentang
Cur z 0.012
Travel 0.1
Feedeate 2
Multi dept centang 0.002


Pain area 
Cut z0.003
Tooldiameter 0.008
Painarea
Tool dianeter 0.01
Overlap 0.15

Senin, 10 Maret 2025

mach3

mach3 macro GetToolChangeStart(0)= untuk mengembalikan nilai coordinat awal saat toolchange m6 dijalankan x y z a b c dimulai dr x=0 contoh pada saat m6 dijalankan dia ada dikoordinat x 2 y 4 z 3 makan data ini akan disimpan code ("g0 x3 f10") = menjalnkan gcode dia akan bergerak ko x3 ActivateSignal (OUTPUT2) mengaktifkan sinyal otput high mematikannya DeactivateSignal(OUTPUT2) DoOEMButton(138)= fungsi ini seperti menekan tombol pada layar mach3 dengan mouse 138 disini no oembutton yang ada dalam tabel DoSpinCCW()= ini untuk mengaktifkan spindle dan berjaln ccw DoSpinStop() DoSpinCW() Sleep() GetABSPosition(0)= untuk mengambil nilai posisi mengembalikan type double bkan int 0 untuk x 1 y 2 z entah ini pengguna apa mesin belum jelas GetCurrentTool() mengembalikan no tool saat ini GetDRO(0)=return as double mengembalikan nilai dro dr x disini x 0 y 1 z 2 GetOEMDRO(800)=return as double mengembalikan nilai dro disini 800 menyimpan nilai dro sumbu x y 8001 z 802 SetVar(1234, 2.3456)=AS DOUBLE menyimpan nilai variable dialamat 1234 denagn nilai2.3456 disini bisa juga diakses dr gcode dengan kode ini misal g01 x #1234 GotoSafeZ()= move to save z IsActive(INPUT1)=boolean cek apakah input satu aktif IsEStop()=boolean apakh mach3 berhenti dengan e stop atau berhenti karena sudah selesai jika 1 berarti diberhentikan dengan estop IsMoving()=boo;ean apakah mesin sedang berjalan IsStopped() LoadFile(“C:\Mach3\Gcode\roadrunner.tap”) = load file gcode RunFile() jalankan MinX() =as double minimal x maksimal x maxX Message “Current tool is “ & GetCurrentTool()= menampilkan pesan Param3()=as double mengembalikan parameter dari m code misa M1200 P1.234 Q2.345 R3.456 disini param 3 adalh R2.345 param1 adalah p1.234 PlayWave(“C:\WINDOWS\Media\Windows XP Startup.wav”) memainkan file wav ProgramSafetyLockout() =boolean mengecek apakah safeti diaktifkan di config umum NextPos = Question("Enter next X position:") Code "G00 X" & NextPos = menjalankan x dengan dilaog SetFeedRate(123.456 / 60) set kecepatan feedrate sampai halaman 71

Senin, 04 September 2023

qtreadpyqt

import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QLabel, QPushButton, QVBoxLayout, QProgressBar from PyQt5.QtCore import QThread, QObject, pyqtSignal as Signal, pyqtSlot as Slot import time #The Worker class has two signals: #mewarisi dari sinyal qobjek #progress #completed #Kelas Pekerja akan memancarkan sinyal kemajuan #ketika sebagian pekerjaan telah #selesai dan sinyal selesai ketika pekerjaan telah selesai. class Worker(QObject): progress = Signal(int) completed = Signal(int) #Metode do_work() memiliki dekorator @Slot() (atau pyqtSlot). Dekorator @Slot() mengubah metode do_work() menjadi slot. #Dekorator @Slot() bersifat opsional. Namun, menghubungkan sinyal ke metode Python yang dihias dapat membantu mengurangi penggunaan memori dan membuatnya sedikit lebih cepat. #Metode do_work() menerima bilangan bulat. Ini mengulangi rentang mulai dari 1 hingga argumen. Dalam setiap iterasi, ia berhenti selama satu detik menggunakan time.sleep() dan memancarkan sinyal kemajuan dengan nilai saat ini menggunakan metode emit(). #Setelah selesai, metode do_work() memancarkan sinyal selesai dengan nilai nilai integer terakhir. #Berkomunikasi antara thread utama dan thread pekerja @Slot(int) def do_work(self): print ("halo") n=3 for i in range(1, n+1): time.sleep(1) self.progress.emit(5)#mengembalikan nilai v self.completed.emit(i)# mengembalikan nilai int v class MainWindow(QMainWindow): #First, create a signal in the MainWindow class: work_requested = Signal(int) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.setGeometry(100, 100, 300, 50) self.setWindowTitle('QThread Demo') # setup widget self.widget = QWidget() layout = QVBoxLayout() self.widget.setLayout(layout) self.setCentralWidget(self.widget) self.progress_bar = QProgressBar(self) self.progress_bar.setValue(0) self.btn_start = QPushButton('Start', clicked=self.start) layout.addWidget(self.progress_bar) layout.addWidget(self.btn_start) #Second, create a Worker object and worker thread: self.worker = Worker() self.worker_thread = QThread() #Third, connect the progress and completed signal of the worker object with the methods of the main window: self.worker.progress.connect(self.update_progress)#jika terdapat sinyal progres akan dijalnkan f update progres self.worker.completed.connect(self.complete) #Fourth, connect the work_requested signal of the MainWindow with the do_work method of the worker object: self.work_requested.connect(self.worker.do_work)#konek kedalam funsi dowork self.work_requested.emit(2)#menjalankan tread 2x #Fifth, move the worker to the worker thread by calling the moveToThread() method: # move worker to the worker thread self.worker.moveToThread(self.worker_thread) #Finally, start the worker thread: # start the thread self.worker_thread.start() # show the window self.show() def start(self): #self.btn_start.setEnabled(False) n =100 self.progress_bar.setMaximum(n) self.work_requested.emit(2)#menjalankan tread 2x pengganti do work funsi diclass worker def update_progress(self, v):#nilai v diambil dari emit signal progres self.progress_bar.setValue(v) def complete(self, v): self.progress_bar.setValue(v) self.btn_start.setEnabled(True) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() sys.exit(app.exec())