Dienstag, 31. Januar 2017

LibreCAD unter LinuxCNC 2.7 kompilieren

Einleitung

Zwar habe ich schon vor einigen Jahren mal einen Blog-Post zum übersetzen von LibreCAD unter LinuxCNC verfasst, der bezog sich aber auf die damals aktuelle Version, daher hier noch einmal eine kurze Anleitung.

Anleitung

Nach dem Start/Einloggen muss man zuerst ein Terminal öffnen (Anwendungsmenü → Terminal). Darin werden nun jeweils die folgenden Kommandos (Kommandos in Monospace, Kommentare normal) eingegeben:

Zuerst brauchen wir einige Pakete:
sudo apt-get install qt-sdk libboost-all-dev libmuparser-dev libfreetype6-dev

Danach holen wir uns den Quellcode:
git clone https://github.com/LibreCAD/LibreCAD.git

Im Gegensatz zu früher haben wir nun einen etwas moderneren Compiler und auch LibreCAD wurde weiterentwickelt, die neueren Branches gehen jedoch mit dem von LinuxCNC eingesetzten Debian Wheezy nicht, daher wählen wir uns mit
git checkout tags/2.0.7
die höchste compilierbare Version aus dem 2.0.0er Zweig von LibreCAD aus.

Die Übersetzung starten wir dann mit
qmake librecad.promake
was eine ganze Weile dauern kann.

Hat alles geklappt, dann kann man mit
cd unix./librecad
LibreCAD nun starten.

Aus Komfortgründen erstellt man sich dann noch am besten einen Starter auf dem Desktop, wie in folgendem Video gezeigt:

Montag, 30. Januar 2017

LinuxCNC 2.7 in VM VirtualBox installieren



Einleitung

Zwar macht es keinen Sinn, aus einer virtuellen Maschine heraus LinuxCNC mit angeschlossener Fräse betreiben zu wollen, da virtuelle Maschinen einfach nicht echtzeitfähig sind, aber für die Simulation von vorbereiteten Fräsjobs ist es ideal.

Daher habe ich -- als Ergänzung der Installation im Bastelkeller -- auf meinem Office-PC eine VM mit LinuxCNC am Laufen.
Da ich die "echte" Installation kürzlich auf einen neuen Rechner mit neuester Software (LinuxCNC-2.7) gebracht habe, war es auch an der Zeit die VM zu aktualisieren.

VirtualBox installieren

Zuerst unter https://www.virtualbox.org/ die aktuelle Virtual Box Software downloaden und installieren. In meinem Fall war dies Version 5.0.32.
Bei der Installation werden auch Gerätetreiber installiert, das ist normal.

VM anlegen

Im Virtual Box Manager auf Neu klicken um eine neue VM anzulegen. Hier meine Daten:
LinuxCNC kommt als 32-bit System, daher unter Version dies auswählen

Je nach verfügbarem RAM der Host-Maschine kann man auch weniger einstellen, unter 2 GB würde ich aber nicht gehen
 


dynamisch alloziert bedeutet, dass wir nur den Platz brauchen, den die VM auch belegt. Der Performancenachteil ist in diesem Fall egal.

40 GB sollte mehr als reichen, durch die dynamische Allokation ist es nicht so tragisch, wenn man hier mehr einstellt.

Linux CNC downloaden und als virtuelle CD angeben

Unter http://linuxcnc.org das ISO-Image downloaden. In meinem Fall war das linuxcnc-2.7-wheezy.iso.
Diese Datei gibt man dann der VM als CD an, indem man die VM anklickt und dann im Menü Maschine / Ändern auswählt.
Im folgenden Dialog wählt man unter Massenspeicher, das CD-Symbol "leer" und klickt auf der Attribute-Seite das eher unscheinbar aussehende CD-Symbol, bei dessen Menü man dann die gerade heruntergeladene Datei als "Datei für optisches Medium auswählen" kann.
 

Danach lässt sich die virtuelle Maschine auch schon starten.

Installation LinuxCNC

Die eigentliche Installation ist recht problemlos. Man wählt einfach im Boot menu den Punkt "Install (Graphical)"


Damit ist die Installation dann auch schon fertig. In einem weiteren Post zeige ich, wie man eine simulierte CNC-Fräse einrichten kann, wie man LibreCAD zum Laufen bringt und was man tun muss um dxf2gcode betreiben zu können.

Donnerstag, 29. September 2016

KIS nach Werner Stark

Nachdem ich mir vor drei Jahren ja schon einmal einen KIS Midi von Werner Starkals ARTF schicken habe lassen, wollte ich daraufhin einen selber bauen.

Nun, wie hier und hier nachzulesen ist, habe ich mir in der Zwischenzeit eine Stepcraft 420 zugelegt, mit der ich Teile für den Modellbau CNC Fräsen kann. Praktisch, wenn man zwei linke Hände aber den Kopf eines Softwareentwicklers hat :-).

Als erstes enstanden die Grundplatte und einige Spanten

die sich mit dem CFK-Rohr hervorragend zu einem Rumpfgerüst verbinden


wobei ich sagen muss, dass ich das nächste Mal den Rumpf mit (mehr) Verzapfungen machen würde, besonders die Spanten könnten noch mehr Verbindungen zur Grundplatte und zu den Seitenwänden vertragen. Außerdem hätte ich wohl auch gleich ein Servobrett miteinplanen können, aber nachher ist man bekanntlich stets klüger.

Die Leitwerke hatte ich sogar noch vor der CNC Fräse von Hand erstellt

das Höhenleitwerk hat Glasfasern auf der Unterseite bekommen und auch dort, an der Stelle, wo es mit dem CFK Stab verbunden wurde.

Die Flügel (Vollbalsa, Profil AG04) bekommt man ja praktisch fertig bei Aigner Balsa, lediglich die Endfahne muss an das Profilbrett angeleimt werden.
Bei der weiteren Verarbeitung schlug die Stunde der Stepcraft, sei es bei den den Randbögen des Flügels, den Sperrholzverstärkungen in der Mitte oder beim Abtrennen der Querruder mit einem 1mm Fräser


Die Befestigung der Flügel habe ich etwas anders als im Original gelöst, da mir gewöhnliche Holzschrauben in relativ wenig Sperrholt nicht so sicher erschienen.
Durch den Flügel gibts ein Loch, das mit einem Alu-Rohr verkleidet ist. Am Rumpf habe ich zwei Zackenmuttern eingeschlagen, die sich von selbst im Sperrholz festkrallen.

Auch beim Erstellen des Lochs für den Wurfstift und der Verstärkung des Lochs mittels einer kreisrunden Sperrholzscheibe kam natürlich die Stepcraft zum Einsatz.


Und so sieht das fertige Modell vor dem Erstflug aus, 313 Gramm bringt der Vogel auf die Waage, ich habe ihn nur einmal mit Porenfüller behandelt.

Der Erstflug verlief zunächst recht erfolgreich, am Hang lässt sich der KIS wirklich gut oben halten und Thermik nimmt er (auch wegen des geringen Gewichtes) gut mit.

Leider habe ich einen bösen Fehler gemacht: Durch die lange Bauzeit, war der Empfänger-Akku-Pack (Block aus 4 Stück 2/3 AAA) deformiert, sodass er trotz "Volladens" am Tag vorher wohl nicht die volle Kapazität hatte. Nach einer Stunde Flugzeit wurde der Empfang so schlecht wurde, dass ich eine "Stecklandung" fabriziert habe, gottseidank sind nur geringe Schäden entstanden.

Sonntag, 18. Oktober 2015

Neueste Version von dxf2gcode auf altem LinuxCNC

Ich hab im Keller immer noch LinuxCNC in Version XXX (Never change a running system).

Die vielen Verbesserungen von dxf2gcode, die in den letzten Monaten eingebracht wurden (u.a. eine integrierte Radius-Korrektur, die auch Innenausschnitte perfekt behandelt, da hatte ich immer meine Probleme ...) wollte ich aber schon haben.

Also hab ich mir die aktuelle Version von Sourceforge gezogen:
git clone git://git.code.sf.net/p/dxf2gcode/sourcecode dxf2gcode-sourcecode
Der Versuch, diese Version zu starten wurde mir allerdings mit folgender Fehlermeldung quittiert:
ImportError: No module named argparse
Meinem Python fehlte also wohl das argparse Modul. Dies kann man mit folgenden Kommados beheben:


apt-get install python-setuptools

easy_install argparse

Danach sollte argparse installiert sein, und das Kommando
python -c "import argparse; print argparse"
sollte folgenden Output liefern:
<module 'argparse' from '/usr/local/lib/python2.6/dist-packages/argparse-1.4.0-py2.6.egg/argparse.pyc'>
Danach ging dxf2gcode wieder einwandfrei.

Samstag, 10. Oktober 2015

Aufbewahrungsbox für AA und AAA Akkus

Bisher hatte ich meine AA und AAA Akkus (hauptsächlich Eneloop) immer in Plastikboxen aufbewahrt. Während man bei dieser Box:

noch durch die Lage (Kopf oben oder unten) wusste, ob die Akkus voll / leer sind, war das bei diesen Boxen:

nicht mehr möglich.

Also habe ich mir eine Box gebaut, welche bis zu 16 AA und 20 AAA Akkus aufnehmen kann. Als Material wurde 4 mm Pappelsperrholz (billig im Baumarkt) verwendet, als Fräser kam ein 2mm VHM-Fräser in meiner Proxxen IBS/E zum Einsatz.

In die Bodenplatte werden 2mm tief kreisrunde Taschen gefräst, darüber befindet sich in gleichem Muster eine Platte, welche die Akkus oben stabilisiert. Die Seitenteile sind dann alle mit Nut-Feder-Verbindungen ausgeführt.

Ein einfacher Deckel, der mit einem Klebebandscharnier befestigt wird, macht die Box verschliessbar.

Hier der Plan:


Und ein paar Fotos:


Gestern habe ich das Ganze dann noch mal fein geschliffen und mit Schnellschliffgrund und Zapon-Lack etwas zu veredeln versucht, das war eber der Übung halber (und davon brauch ich wohl noch viel, Lackieren ist einfach nicht meins ...).

Wers nachbauen will, hier wieder der Download mit .dxf (LibreCAD) und .ngc (LinuxCNC) Datei.

Viel Spass beim Nachbauen oder Anpassen.

Donnerstag, 8. Oktober 2015

Ein Knopf zur Rückkehr nach 0/0

Ein Blog-Leser hat mich gefragt, ob man denn einen weiteren Knopf in Axis einbauen könnte, mit dem auf den Werkstück-Nullpunkt fahren kann.

Das ist denkbar einfach. Man erweitert dazu laengensensor.xml um folgende Zeilen:
<button>
<halpin>"goto-xy-zero"</halpin>
<text>"Gehe X/Y nach 0/0"</text>
</button>

Und die laengensensor.hal um folgendes:
net goto-xy-zero halui.mdi-command-04 <= pyvcp.goto-xy-zero

Schliesslich noch in der Konfigurationsdatei der Fräse (.ini-Datei) das Kommando dazu (nur der fette Teil kommt dazu)
[HALUI]
MDI_COMMAND = G30.1
MDI_COMMAND = G30
MDI_COMMAND = O<probez> call
MDI_COMMAND = O<touchoffxy> call
MDI_COMMAND = G0 X0 Y0

Und schon flutscht das:

Und will man einen weiteren Knopf, um zum Maschinen-Nullpunkt zu kommen, geht das analog im .xml-File:
<button>
<halpin>"goto-xy-zero-machine"</halpin>
<text>"Gehe X/Y nach Maschinen-0/0"</text>
</button>
im HAL-File:
net goto-xy-zero-machine halui.mdi-command-05 <= pyvcp.goto-xy-zero-machine

und die HALUI-Sektion sieht dann so aus:
[HALUI]
MDI_COMMAND = G30.1
MDI_COMMAND = G30
MDI_COMMAND = O<probez> call
MDI_COMMAND = O<touchoffxy> call
MDI_COMMAND = G0 X0 Y0
MDI_COMMAND = G53 G0 X0 Y0
Viel Spass beim Nachbauen :-).

Sonntag, 4. Oktober 2015

Vakuumtisch als Auflage auf den Stepcraft T-Nutentisch

Einleitung

Wie schon berichtet ist eines meiner Langzeit-Projekte der Bau eines KIS (aka Schmeissgeier). Das ist mittlerweile schon recht weit fortgeschritten (mehr dazu später), jedenfalls ist einer der Bauschritte aus dem (fast) fertigen Flügel die Querruder herauszutrennen.

Und weil ich genau weiß, was ich mit einem Messer anrichten würde wollte ich den Schritt mit meiner Stepcraft 420 durchführen. Einfach 1mm Fräser rein und das Ruder rechteckig aus dem Flügel trennen. Nur kann man dafür den Flügel nicht vernünftig aufspannen (ich muss über die gesamte Lnge der Fräse fahren). Ein Vakuumtisch löst das Problem - ein neues Projekt war geboren.

Nach einigem Überlegen war meine Idee, dass ich die Nuten des Nutentisches als "Kanal" benutze und passgenau eine MDF-Platte mit "gespiegelten" Nuten darauflege, die dann die notwendigen Löcher bekommt.

Frontabdeckung

Aus einer 8mm MDF - Platte habe ich die Form der Frontplatte der SC 420 ausgefräst inklusive 5mm großer Löcher an jenen Positionen, wo die Nuten der Nutenplatte sind.
Die Löcher für die Schrauben, mit denen die Frontplatte festgemacht wird habe ich mit der Hand gebohrt, was ein Fehler war, weil das MDF ausgerissen ist. Es funktioniert trotzdem wie man sieht:
Frontabdeckung

Das Loch passt genau zur Nut

Löcher

Mein Plan war es, entlang der Nuten des Nutentisches Lochreihen zu machen. Und weil zwischen zwei Nuten 5 cm Platz ist habe ich noch je eine Reihe zwischen zwei Nuten geplant.
Und damit war als Abstand zwischen zwei Lochreihen je 2.5 cm geplant und damit es schön gleichmäßig wird war dies auch der Abstand zwischen den Löchern, die ich 4mm groß und 10 mm tief in das 12 mm starke MDF gebohrt habe...

Beim Bohren der ersten Löcher
... das hat sich allerdings dann als Fehler herausgestellt, die Löcher sind zu groß und zu wenig. Daher habe ich später dann noch je 2 Stück Löcher mit 2mm Durchmesser zwischen zwei der schon vorhandenen gemacht. In Zukunft werde ich nur mehr 2mm Löcher machen, aber jetzt sieht die Platte halt so aus:
Nach dem Bohren weiterer Löcher
Mit diesem Lochraster hält eine 4mm Pappelsperrholzplatte bombenfest.

Luftführende Nuten (Unterseite)

Um die Nuten an der Unterseite 8mm breit zu bekommen bin ich mit dem 3mm Fräser dreimal auf und abgefahren und wegen der Tiefe von 6mm das Ganze in 2 Durchgängen. Macht also 6 mal ganz rauf und runterfahren und das wiederum 11 mal für die 6 Nuten über den Nutentisch-Nuten und 5 für die "Zwischenkanäle". Damit diese auch Unterdruck bekommen wird oben und unten noch einmal ein Querkanal ausgefräst.
So sieht der Plan aus (grün sind die Löcher, weiß die Nuten, gelb sind Maße).
Nutentisch - Plan
und so sieht es in Natura aus:

Nuten auf der Unterseite

Staubsaugeranschluß

Beim lokalen Gummi-Fachhändler habe ich mir 2 Meter transparenten Schlauch mit 5mm Durchmesser besorgt (zum Spottpreis) und im Baumarkt ein Abwasser-Knie. Die Schläuche werden einerseits durch die Frontplatte, andererseits durch eine passgenaue Abdichtung (wieder aus 8mm MDF) in das Knie eingeführt:

Der Sauganschluss

Das andere Ende des Knies habe ich mit einer Gummi-Muffe versehen, in die ich jetzt bequem den Anschluss vom Staubsauger stecken kann.

Das Resultat

So sieht das Resultat aus

Die fertige Konstruktion

Und obwohl die Saugleistung meines Kärcher 3500 zwischen Absaugung und Vakuumtisch geteilt werden muss, hält ein 4mm Pappelsperrholz bombenfest, wie ich feststellen konnte, als ich mir eine Akkubox gebaut habe.

Download

Ich habe eine ZIP Datei mit allen wesentlichen Teilen im .dxf-Format und LinuxCNC-fertige .ngc Dateien gemacht, falls jemand Lust hat, den Tisch nachzubauen.