Teknoloji Burada

inovasyon meraklılarını bir araya getiren "Sosyal Ağ"

Lazer ile reçine katılaştırma

 

Onca iş beklerken kendimi yeni denemeler yapmaktan alıkoyamıyorum. Atölyemi toplarken 500 mili wattlık uv lazerim karşıma çıktı. Facebook dan Özgür beyle yeni bu konuyu konuşmuşken bende hızlıca bir denemek istedim bu lazer reçineyi katılaştıracak mı diye. Her parça elimde var hemen bir helva pişireyim dedim. Öncelikle hiç istemesemde deneme platformum Hamaradın ilk prototipi olan Hamarat 0 numara oldu. İstemiyorum çünkü 3D yazıcım elim ayağım onu bozmak yada işlemez hale getirmek beni çok zorduruma sokar. Yinede dedimya içindeki durdurulamaz deneme isteği ağırbastı ve lazeri hamarada bağlamak için ara bir parça tasarladım. Parçayı hamarad print ederken başına geleceklerden habersizdi tabi. Masum masum ABS sağlam bir baskı verdi bana. Baskıyı alır almaz hamarada lazeri taktım 🙂

Tabi lazeri oraya takmak işin sadece 10 da biri. Sürücü elektroniğini fan çıkşlarından birine bağladım. Bu fan FDM tipi yazıcılarda birinci kat basılırken kapalı oluyor plastik sıcak sıcak zemine iyi yapışsın diye. Birinci katdan sonra yazılım komutu ile (M106) devreye sokuluyor. Benim de tam ihtiyacım olan bir M komutu ile lazeri açıp kapatmak olduğu için buraya bağlamak uygun olur dedim.

Aslında altdan aydınlatmalı DLP yazıcıda çok yol kat ettik. Kuyumculuk sektöründe kullanılabilecek detayda baskı yapabiliyor. Uygun bir yatırımcı desteği ile onu hayata geçireceğiz inşallah. O makina ile ilgili detayları malesef şimdilik buradan paylaşamıyorum. Onun yerine burada üstten aydınlatmalı DLP projectör yerine daha ucuz bir alternatif olan lazer ile çalışan bir makinadan bahsedeceğim. Üstten aydınlatma Top Down denilen ışık kaynağının yukarıda olduğu objenin üzerinde oluşacağı platformun reçine havuzuna daldığı bir yöntem. Bu yöntem Aslında 3D system firmasının kurucusu Chuck Hull’ın patentini aldığı ilk 3d yazıcı çalışma prensibi. Halen bu tür makinalarda yüksek kaliteli çıktılar alınıyor. Patent süresi dolduğundan dolayı artık bu teknoloji yaygınlaşmakta ve bizim 3D yazıcı yapan camiada çok tatbik ediliyor. Ben de oralarda duyduğum bir kaç tekniği denemek istiyorum. Bunlardan ilki bu makinanın derin bir reçine havuzuna dalarak çalışması çok fazla reçine gerektirdiğinden pahalı bir seçenek oluyordu. Ama bizim camia (community) buna akıllıca bir yöntem bulmuş. Denedim ve gayet başarılı sizlerle paylaşmak istiyorum. Yoğun tuzlu bir safsu çözeltisi hazırlıyorsunuz. Saf suyu kaynatarak içinde olabildiğince çok tuz çözüyorsunuz. Bu çözeltinin özgül ağırlığı 1.2g/cm3 oluyor. Uv ışığa duyarlı reçineinki ise 1.1g/cm3 Yani kabın büyük bölümünü tuzlu suyla doldurup ustüne sadece kullanacağınız kadar reçine koyuyorsunuz. Yavaş koyarsanız reçine ile tuzlu su karışmıyor ve reçine suyun üzerinde yüzüyor. Böylece bu yöntemin en büyük handikabından da kurtulmuş oluyoruz.

Hamarad’a yaptığım bir eklentide sabit bir kola bağlı objenin üzerinde oluşacağı küçük bir platform monte etmek oldu. Normalde bu platform z ekseni olarak kabın içindeki reçineye dalması gerekiyor. Ben mevcut yazıcımda çok fazla ir değişiklik yapmamak için platformu sabittutup kabı yukarı kaldırarak bu platformun reçine içine batmasını sağladım. Mekanik olarak çok az değişiklik gerekti. Asıl değişiklik yazılımda oldu. Zira z ekseninin yönü değişti. Asıl önemli yazılımsal değişiklik ise reçine kabını önce fazlaca yukarı kaldırıp tüm yüzeyin reçine içine dalmasını sağladıktan sonra ters yönde bir hareket yaparak sonuçta 0.1mm tablanın reçine havuzuna batmasını sağlamak için gerekli yazılımsal değişiklikleri yapmam gerekiyordu. Cura dilimleme yazılımını çok seviyorum  burda da onu kullanmak istedim. Neyseki Curanın plugin yazmaya olanak tanıyan esnek bir yapısı var. Bu iş için Python la bir plugin yazıp lazerin devreye girip çıkmasını ve tablanın istediğim yönde ve şekilde hareket etmesini sağlamış oldum.

FullSizeRender (1)

 

 

 

 

 

 

 

 

 

Cikti kalitesi beni cok memnun etmese de ilk deneme icin fena degil. Lazer 500 mili watt cok fazla geliyor tahminim 100-150 mili watt yeterli olacaktir. Daha dusuk watli lazerle daha ince katman kalinligi yapildiginda duzgun ciktilar alinabilecegini dusunuyorum. Lazerin spot buyuklugu de nekadar kucuk olursa okadar iyi tabi. Core XY nin hizli hareket ve bosluksuz surus imkanlari cok avantaj sagladi.

Vakit buldugumda daha kaliteli bir lazer ve daha hasas mekanik bir yapi ile tekrar denelerde bulunmak istiyorum.

 

iste cura plugin kodlari

#Name: Gnexlab Laser On/Off
#Info: Switch off laser power during travel moves
#Help: Gnexlab
#Depend: GCode
#Type: postprocess
#Param: ZStart(float:100) Z Start point
#Param: ZDive(float:5.0) Z Dive

## Written by Nuri Erginer, based on TweakAtZ by Steven Morlock

## This script is licensed under the Creative Commons - Attribution - Share Alike (CC BY-SA) terms

# Uses - Laser off fan power during travel moves




import re

def getValue(line, key, default = None):
	if not key in line or (';' in line and line.find(key) > line.find(';')):
		return default
	subPart = line[line.find(key) + 1:]
	m = re.search('^[0-9]+\.?[0-9]*', subPart)
	if m is None:
		return default
	try:
		return float(m.group(0))
	except:
		return default

with open(filename, "r") as f:
	lines = f.readlines()

z = 0
x = 0
y = 0
feed = 0
with open(filename, "w") as f:
	for line in lines:

                newZ = 0
                if getValue(line, 'G', None) == 0:
                        f.write("; Gnexlab Laser ON/Off\n")
                        f.write("M106 S0\n")
			newZ = getValue(line, 'Z', z)
			
                        if (newZ != 0):
                                #print "new z: %f" % newZ
                                x = getValue(line, 'X', x)
                                y = getValue(line, 'Y', y)
                                feed = getValue(line, 'F', feed)
                                f.write("; Gnexlab Lazer Zmove \n")
                                f.write("G0 X%f Y%f F%f ;modified \n" % (x, y,feed))
                                #f.write("G91\n")
                                f.write("G1 Z%f F%f \n" % ((ZStart-(newZ+ZDive)),(feed/20)))
                                #f.write("G1 Z%f \n" % (ZStart-(newZ+ZDive)))
                                #f.write("G90\n")
                                f.write("G1 Z%f F%f \n" % ((ZStart-newZ),(feed/20)))
                                f.write("G1 F%f \n" % ((feed)))
                                f.write("G4 S1\n")
                        else:
                                f.write(line)
                                
                        f.write("M106 S255\n")
                        f.write("; Gnexlab End\n")

            
	
                      
                        
		else:
                        f.write(line)

 

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Time limit is exhausted. Please reload CAPTCHA.

Araç çubuğuna atla