[Sammelthread] Die HWLuxx 3D Druckerkolonne....

Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ah, wenn du die Dateien in .stl konvertireren kannst.
Dann kannst du die auch drucken.

Welches CAD Programm verwendest du?
 
BIM sagt mir was, aber ich vermute, das die Modelle, sofern diese schon in 3D sind, nicht dazu taugen, direkt gedruckt zu werden.

Du brauchst halt ein 3D-Objekt das Du in nem Slicer dann in GCODE umwandeln kannst.
Beitrag automatisch zusammengeführt:

Ah, wenn du die Dateien in .stl konvertireren kannst.
Dann kannst du die auch drucken.

Welches CAD Programm verwendest du?

Ich vermute, er möchte auf öffentliche Daten zugreifen - bei nem vorherigen AG wurden auch bestimmte 3D-Modelle über die BIM-Plattform den Architekten zur Verfügung gestellt.
 
Die Modelle sind mit Revit erstellt.
Also eine rvt hätte ich auch.
Vermutlich nicht so banal, bei Google habe ich nichts wirklich zielführendes gefunden, außer das es Firmen gibt die sowas können.
 
Ah, wenn du die Dateien in .stl konvertireren kannst.
Dann kannst du die auch drucken.

Welches CAD Programm verwendest du?
Grad mal geschaut, ich kann aus revit eine stl exportieren. Und das kann mann dann drucken?
 
Die .stl musst du durch einen Slicer wie z.B. Prusaslicer laufen lassen, der den gcode für deinen 3D Drucker erstellt.

Falls du einen 3D Druck Service nutzt, kannst du dort einfach die .stl zur Verfügung stellen.
 
Kannst du einen Service empfehlen? Was kostet sowas?
 
Schau doch mal hier, ggf. findet sich wer, der dir das günstig druckt:

Sonst kann ich noch https://www.3dbavaria.com/ empfehlen
 
Druckt hier wer Multicoler mit nem ERCF oder so ? und hat nen Cutter in betrieb ?
 
Nen 3.3er Bohrer haben aber keinen Körner? :d

Aber ja, alles richtig gemacht, durch eine Schablone körnen passt schon.


Wär mir noch nix aufgefallen, und ich hab recht viel TPU verwendet. Neigt auch wenig zum abreiben.

Eigentlich bräuchte man einen 3.4er Bohrer für M3 Schrauben (H13 Toleranz) wenn man es noch genauer haben will :fresse:

Ich nutze aber ebenfalls Bohrer mit "krummen" Werten..
 
Nen 3.3er Bohrer haben aber keinen Körner? :d
Ach komm schon... Also ich hatte damals einfach einen Satz Bohrer von 2mm-6.5mm gekauft für derartige Arbeiten. Und darin gibt es unter anderem 3mm, 3.3mm, 3.5mm, 4mm,... Körner habe ich, nur im Saustall nicht gefunden :rolleyes2:und da kam mir die Idee mit dem Nagel. Fand ich das gar nicht so schlecht, der ließ sich sehr präzise aufsetzen... Und Alu ist so schön weich, da geht das ganz gut...
 
Ja scheiß auf Toleranzen für Durchgangslöcher, sowas macht echt niemand. :ROFLMAO: Ich mein, ja eh, stimmt schon, ist ja auch nur in irgend ner DIN festgehalten, muss man ja nicht so machen.
3,3 ist Kernloch M4, drum hat man das vermutlich noch irgendwo dabei, kannst aber auch mit 3,5 machen, funktioniert auch (und die Chance einen billigen M4 Gewindebohrer abzubrechen ist kleiner).

Wollte das gar nicht groß aufmachen jetzt, fand nur spannend, dass 3,3 > Körner. :d
PS: Körner ist toll, damit kann man viel anstellen. Benötigt nur nen Hammer als Partner und braucht nicht viel Platz. => kaufen :d...
 
Ich nehme immer die gute Bauernregel:
Gewindewert * 0,8 = Bohrer

Also:
M4 * 0,8 = 3,2mm Bohrer
Beitrag automatisch zusammengeführt:

Wollte das gar nicht groß aufmachen jetzt, fand nur spannend, dass 3,3 > Körner. :d
PS: Körner ist toll, damit kann man viel anstellen. Benötigt nur nen Hammer als Partner und braucht nicht viel Platz. => kaufen :d...
Gibt auch Körner die ohne Hammer funktionieren. Einfach drücken, dann wird eine Mechanik ausgelöst, gibt denn ne kurzen Knall und die Stelle ist vorgekörnt👍
 
Hat jemand von euch Spoolman im Einsatz? Für irgendwelchen Excel Kram bin ich viel zu faul, das kann ich mir aber echt vorstellen.
 
Nö,
meine Methode heißt, die Spüle wiegen.
Dann weiß sich wie viel Gramm und damit noch Material drauf ist.

Ne Excel habe ich nur für die Flow Rates der verschiedenen Filamente
 
Eryone hat - zumindest bei den 250g Pappespulen - außen eine Skalierung wie man sieht wie viel Filament noch drauf ist. Wenn man des nicht genau auf ein Gramm benötigt ist das auch eine Recht gute Lösung, man sieht immer direkt an der Spule wie viel noch drauf ist
 
Jungs ich hab hier aber schon Material ohne Ende und wenn ich das automatisch in ne Datenbank mit Webserver schreiben kann, stinkt der Aufdruck etwas ab :fresse:
 
Hat jemand von euch Spoolman im Einsatz? Für irgendwelchen Excel Kram bin ich viel zu faul, das kann ich mir aber echt vorstellen.
Sowas hab ich mir mal überlegt, nachdem die anfängliche Excelliste etwas zu umfangreich wurde.

Hab aber bei der Excelliste schon mehrere Sachen festgestellt:
1. Das tatsächliche Druckgewicht weicht dann doch öfter schonmal von dem ab, was der Slicer berechnet hat. Zwar nicht um 30%, aber es waren schon desöfteren mal 10% weniger, mal aber auch 5% mehr. Ist also sowieso schon ungenau.
2. Die Modelle nachwiegen um eben genau solche Abweichungen überhaupt zu entdecken, hab ich öfter mal vergessen und dann irgendwann auch weitgehend ganz sein lassen.
3. Sowohl nach den Slicer-Werten als auch meinen Wiegungen (nennt man das so?), war praktisch auf jeder Spule mehr als 1kg drauf. So 50-100g mehr. Auf den Jayo-Rollen, die ja eh schon mit 1,1kg angegeben sind, waren ebenfalls meistens so 50-100g mehr drauf.
4. Abgebrochene Drucke sind furchtbar zu tracken, weil man muss immer nachwiegen, wieviel Material denn jetzt trotzdem schon verdruckt wurde.

-> Wenns aufs Ende einer Rolle zugeht, hilft mir jegliches Mitzählen auch nicht, ich weiß trotzdem nicht ob da jetzt TATSÄCHLICH nur noch 15 oder noch 25g drauf sind.
-> Die Mitschreiberei in einem externen Tool nervt und ich vergesse es dann auch öfter. Wenn überhaupt, müsste das der Slicer direkt mitrechnen. Was auch blöd ist, wenn man dann doch mal was mit einem anderem Slicer druckt.
-> anfänglich mit vielleicht 3 angebrochenen Rollen ging es noch halbwegs. Mittlerweile mit keine Ahnung 25 Rollen auf Lager und 12 angebrochenen Rollen isses schon wieder zu kompliziert.
-> mit Multimaterialdruck wirds noch komplizierter und ist praktisch überhaupt nichtmehr nachwiegbar.


-> ich habs den Versuch das überhaupt irgendwie zu tracken mittlerweile komplett aufgegeben.

Es wird geschätzt und bei Bedarf die Spüle nachgewogen. Dabei hilfts, wenn man mal ein paar leere Spulen wiegt und somit ungefähr weiß, wieviel welche Spülen Bruttogewicht haben. Vorallem natürlich sehr unterschiedliche Spülen, z.B. die Pappspülen und halt Kunststoffspülen. Der Rest wird geschätzt und ist idR genauer wie alles was ich vorher versucht habe zu tracken.
Und wenn ich einen 200g-Drück starte und ich die Spüle mit 350g wiege und weiß, das die leere Spüle so um die 150g wiegt, dann mach ich halt direkt eine neue Rolle auf.
 
Hoffentlich 1. aber definitiv 4. ist ja damit kein Problem, die Werte kommen ja direkt von Moonraker. Das ist ja das was ich so gut dran finde, da kommen genau die Werte raus die wirklich verdruckt werden.
 
Ich drucke normalerweise einfach bis der Filamentsensor merkt das die Spule leer ist und mache dann eine neue Rolle drauf. :d Hat etwas gedauert die Pause, Resume etc. Marcos anzupassen aber seitdem läuft das problemlos. Das ganze "reicht es noch" hat mich schon immer genervt. ^^
 
Ich hab den von Creality vom CR-6 SE / Ender 3 S1. Der wurde mir hier mal von irgendwem empfohlen und hat bisher auch noch nichts falsches gemeldet.
 
Den hab ich auch (ist ja n S1), absolut unauffällig
 
Grundlegend habe ich hier mein Start macro öfter schon gepostet. Ich habe nur keine wartezeit drin nach Bett aufheizen.
Da gcode Marcos schön nacheinander die Befehle durchgeführt werden nach dem der vorigen beendet ist kann man nach dem ausheizen bspw mit M140 S80 (Bett warten bis 80C) und danach eine Pause mit G4 P60000 (Angabe in Millisekunden, also eine Minute; nicht jeder Drucker kann G4 S60 (S in Sekunden))
 
Ich hab mir mal die Freiheit genommen, einen passenden Sammelthread zu eröffnen.
Hier könnt ihr eure Klipper Makros inkl. einer kleinen Beschreibung posten:

 
@BIRNE21

Bitteschön. ^^ Im wesentlichen nutze ich etwas angepassten Macros aus Ellis Guide.

Hatte anfangs versucht nur den Filamentsensor zur Config hinzuzufügen und das hat trotz diverser Versuche mit weiteren Parametern, Delays etc. nicht ordentlich funktioniert... Probleme hatte ich speziell bei Übergängen von Macros, wenn man den Sensor dauerhaft aktiv lässt. (SET_FILAMENT_SENSOR SENSOR=runout ENABLE=1). Dann bleibt der z.B. nach dem Start Macro, vor Druckbeginn einfach stehen oder macht direkt weiter sobald man das Filament wieder reinschiebt... Man muss zusätzlich die normalen Pause Resume Macros "überschreiben" und den Sensor möglichst nur beim eigentlichen Drucken aktivieren.

Habe bei mir aktuell aber immer noch ein kleines "Problem". Im Resume Macro schalte ich den Sensor nicht wieder ein. Ich kann also momentan nicht 2x die Spule wechseln. ;-) Wenn ich den hier wieder aktiviere fängt der beim Resume jedes mal wieder an zu drucken, geht 10s später wieder in die Pause und beim nächsten Resume funktioniert es dann... (Keine Ahnung wieso.)

Code:
[filament_motion_sensor runout]
etection_length: 10.0
extruder: extruder
pause_on_runout: TRUE
insert_gcode:
    M117 Insert Detected
switch_pin: PG12
runout_gcode:
    M117 Runout Detected

Code:
[pause_resume]


[pause_resume]


[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
    # Parameters
    {% set z = params.Z|default(10)|int %}                                                   ; z hop amount

    {% if printer['pause_resume'].is_paused|int == 0 %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z}                              ; set z hop variable for reference in resume macro
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target}    ; set hotend temp variable for reference in resume macro

        SET_FILAMENT_SENSOR SENSOR=runout ENABLE=0                                  ; disable filament sensor
        SAVE_GCODE_STATE NAME=PAUSE                                                          ; save current print position for resume
        BASE_PAUSE                                                                           ; pause print
        {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %}       ; check that zhop doesn't exceed z max
            G91                                                                              ; relative positioning
            G1 Z{z} F900                                                                     ; raise Z up by z hop amount
        {% else %}
            { action_respond_info("Pause zhop exceeds maximum Z height.") }                  ; if z max is exceeded, show message and set zhop value for resume to 0
            SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
        {% endif %}
        G90                                                                                  ; absolute positioning
        G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000   ; park toolhead at front center
        SAVE_GCODE_STATE NAME=PAUSEPARK                                                      ; save parked position in case toolhead is moved during the pause (otherwise the return zhop can error)

      
    {% set speed = params.SPEED|default(300) %}
    {% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity %}
    SAVE_GCODE_STATE NAME=unload_state
    G91  
    M104 S190                  
    TEMPERATURE_WAIT SENSOR=extruder MINIMUM=190
    G92 E0
    #G1 E25 F{speed} # purge
    G1 E-65 F{max_velocity} # fast-unload
    RESTORE_GCODE_STATE NAME=unload_state


        M104 S0                                                                              ; turn off hotend
        #SET_IDLE_TIMEOUT TIMEOUT=43200                                                       ; set timeout to 12 hours
    {% endif %}


[gcode_macro RESUME]
rename_existing: BASE_RESUME
variable_zhop: 0
variable_etemp: 0
gcode:
    # Parameters
    {% set e = params.E|default(2.5)|int %}                                          ; hotend prime amount (in mm)

    {% if printer['pause_resume'].is_paused|int == 1 %}
        #SET_FILAMENT_SENSOR SENSOR=runout ENABLE=1                          ; enable filament senso
        SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}  ; set timeout back to configured value
        {% if etemp > 0 %}
            #M109 S{etemp|int}
            M104 S{etemp|int}  ; wait for hotend to heat back up
            TEMPERATURE_WAIT SENSOR=extruder MINIMUM={etemp|int}
        {% endif %}
        RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100                     ; go back to parked position in case toolhead was moved during pause (otherwise the return zhop can error)
        G91                                                                          ; relative positioning
        M83                                                                          ; relative extruder positioning
        {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %}
            G1 Z{zhop * -1} E{e} F900                                                ; prime nozzle by E, lower Z back down
        {% else %}
            G1 Z{zhop * -1} F900                                                     ; lower Z back down without priming (just in case we are testing the macro with cold hotend)
        {% endif %}
        RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60                          ; restore position
        BASE_RESUME                                                                  ; resume print
    {% endif %}




[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
    SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value
    CLEAR_PAUSE
    SDCARD_RESET_FILE
    PRINT_END
    BASE_CANCEL_PRINT



[gcode_macro M600]
gcode:
    #LCDRGB R=0 G=1 B=0  ; Turn LCD green
    PAUSE                ; Pause

[gcode_macro PRINT_START]
# Use PRINT_START for the slicer starting script - PLEASE CUSTOMISE THE SCRIPT
#gcode:
# M117 Homing... ; display message
# G28
# Z_TILT_ADJUST
# G28


# Use PRINT_START for the slicer starting script - please customise for your slicer of choice
gcode:
SET_FILAMENT_SENSOR SENSOR=runout ENABLE=0
NEOPIXEL_DISPLAY LED="my_led" TYPE=bed_temp MODE=progress
#NEOPIXEL_DISPLAY LED="my_led" TYPE=print_percent MODE=progress



M117 Heating bed
M140 S{ params.BED } ; Wait for bed to get to target temperature.
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={ params.BED }


M117 Preheating nozzle
M104 S150 ; Wait for nozzle to heat to 150C - soften filament, but no oozing.
TEMPERATURE_WAIT SENSOR=extruder MINIMUM=150


M107 ; Print fan off

M117 Z Tilt Adjust

G28 ; Home - G28 or G32 depending on printer.
Z_TILT_ADJUST ; Trident uses Z_TILT_ADJUST, V2 uses QUAD_GANTRY_LEVEL
G28 Z

M117 Bed Mesh Calibrate

BED_MESH_CALIBRATE


M117 Heating nozzle
M104 S{ params.EXTRUDER } ; Wait for nozzle to get to target temperature.
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={ params.EXTRUDER }

QUICK_CLEAN_NOZZLE
_PRIME_NOZZLE
NEOPIXEL_DISPLAY LED="my_led" TYPE=print_percent MODE=progress
G90 ; Absolute coordinates.
M83 ; Relative extruder mode.
G92 E0


M117 Printing
SET_FILAMENT_SENSOR SENSOR=runout ENABLE=1



[gcode_macro PRINT_END]

gcode:
NEOPIXEL_DISPLAY LED="my_led" TYPE=extruder_temp MODE=glow

# safe anti-stringing move coords
{% set th = printer.toolhead %}
{% set x_safe = th.position.x + 20 * (1 if th.axis_maximum.x - th.position.x > 20 else -1) %}
{% set y_safe = th.position.y + 20 * (1 if th.axis_maximum.y - th.position.y > 20 else -1) %}
{% set z_safe = [th.position.z + 2, th.axis_maximum.z]|min %}

SAVE_GCODE_STATE NAME=STATE_PRINT_END

M400 ; wait for buffer to clear
G92 E0 ; zero the extruder
G1 E-15.0 F3600 ; retract filament

TURN_OFF_HEATERS

G90 ; absolute positioning
G0 X{x_safe} Y{y_safe} Z{z_safe} F20000 ; move nozzle to remove stringing
G0 X{th.axis_maximum.x//2} Y{th.axis_maximum.y - 2} F3600 ; park nozzle at rear
M107 ; turn off fan
M84 E,X,Y,Z ; turn off motors
UPDATE_DELAYED_GCODE ID=filter_off DURATION=600 ;Nevermore Timeout after Print
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0

BED_MESH_CLEAR
RESTORE_GCODE_STATE NAME=STATE_PRINT_END
 
Ich habe aktulle das Problem, das mit KAMP in den Druckbereich rein purged.
Also bei dem aktuellen Druck in den Brim.

Natürlich reißt er dann den Brim hoch, weil der danze Mist an der Düse hängen bleibt 😤

Das passiert aber nur wenn ein Brim aktiv ist.
Muss ich da noch ein bestimmtes Setting in der Printer Config setzen?
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh