Change-log Source: Prusa Github Wiki questo testo è di propietà di Prusa 
io ho solo effettuato la traduzione per renderlo disponibile a tutti.


PrusaSlicer 2.4.0-alpha1

Riepilogo

Questa è la prima versione alpha di PrusaSlicer 2.4.0, che introduce lo strumento di pittura multi-materiale, supporti FDM e raft migliorati, modalità oscura di Windows, Fuzzy Skin, configurazione Brim per oggetto, volumi negativi, stampa a colori automatica per i segni, Galleria delle forme, ” Notifiche del consiglio del giorno”, semplificazione del modello, supporto per il controllo dell’accelerazione Marlin 2, supporto dei modelli di aeroplani 3DLabPrint, nuovi profili di stampanti di terze parti e molte altre nuove funzionalità, miglioramenti e correzioni di bug.

Per permetterti di goderti l’alpha senza preoccupazioni, le build alpha salvano i loro profili nella directory PrusaSlicer-alpha, così puoi usare l’alpha fianco a fianco con la versione corrente senza rovinare la tua configurazione di produzione.

Il software si basa sul lavoro di Alessandro Ranelucci ( @alranel ) e della community di RepRap. Il primo commit pubblico è del 01-09-2011, il che significa che esattamente oggi PrusaSlicer basato su Slic3r festeggia il suo decimo compleanno🎂🍾 Grazie a tutti coloro che hanno contribuito durante il decennio e hanno contribuito a migliorare continuamente il software.

Segue una descrizione completa dei miglioramenti e delle modifiche rispetto all’attuale versione di PrusaSlicer 2.3.3 .

Pittura multimateriale #3535

In PrusaSlicer 2.3.0 abbiamo introdotto supporti e cuciture verniciati. Vedendo gli strumenti di pittura in PrusaSlicer, molti clienti hanno chiesto strumenti simili per aiutare con la stampa multi materiale. In effetti, la preparazione di modelli per stampe FDM multimateriale era un processo laborioso e dispendioso in termini di tempo. Con questa versione di PrusaSlicer, questo è un ricordo del passato e colorare un oggetto per la stampa multi materiale richiede solo una manciata di operazioni di riempimento del secchio e pennellate.

mm_painting_jpg

Lo strumento di modifica si apre con il tasto di scelta rapida N e offre i seguenti strumenti:

  1. Pennello: simile al vecchio supporto o strumento di pittura delle cuciture.
  2. Riempimento intelligente: riempie una regione sotto il cursore del mouse fino a un bordo nitido (la soglia del bordo nitido è regolabile sul pannello).
  3. Riempimento a secchio: sostituire una patch di un colore con un altro.

mmu_painting

Le caselle combinate nel pannello consentono di mappare diversi estrusori sul pulsante sinistro e destro del mouse. Il numero e il colore dell’estrusore selezionato sono mostrati per chiarezza. Il colore utilizzato per la visualizzazione può essere sovrascritto facendo clic sul quadrato colorato accanto all’estrusore selezionato. Questo colore di visualizzazione non viene salvato da nessuna parte e andrà perso alla chiusura dell’applicazione.

Una volta che l’oggetto è stato dipinto, la superficie dell’oggetto viene segmentata in toppe dello stesso materiale e le toppe vengono estese verso l’interno. Le regioni dipinte in alto risp. le superfici inferiori sono estese per il numero di top_solid_layersrisp. bottom_solid_layers(configurabile in Print Settings->Layers and Perimeters). Le regioni dipinte alle pareti laterali vengono espanse verso l’interno fino al massimo mmu_segmented_region_max_width(che è un nuovo parametro di configurazione accessibile in Print Settings->Multiple Extruders->Advanced).

Il dipinto influisce solo sul risultato dell’affettatura, il modello stesso non viene alterato e le “parti” colorate non possono essere esportate separatamente.

Appunti

Si prega di notare che le caratteristiche sottili non sono stampabili con la tecnologia FDM, quindi, ad esempio, dipingere una parete sottile con due colori distinti non renderà stampabile la parete sottile. Tali sottili regioni non stampabili create durante la segmentazione vengono così rilevate e fuse con la regione vicina, cambiandone il colore. PrusaSlicer stamperà le caratteristiche più sottili con “rileva pareti sottili” abilitato, quindi si consiglia di provare ad abilitare “rileva pareti sottili” se si dipinge su caratteristiche sottili.

Ci sono due ulteriori limitazioni derivanti da motivi tecnici:

  • La verniciatura multimateriale è limitata a 16 estrusori. Se la tua stampante utilizza più estrusori, solo i primi 16 saranno disponibili nello strumento di pittura.
  • La verniciatura multimateriale non può essere combinata con la compensazione delle dimensioni XY. La compensazione della dimensione XY verrà ignorata durante il taglio se l’oggetto è anche multimateriale dipinto.

L’utente viene informato da una notifica in entrambi i casi.

Ponti per strati inferiori

PrusaSlicer si basa sul lavoro pionieristico di Alessandro Ranelucci e della community di RepRap sul progetto Slic3r. Come già accennato in precedenza, il progetto è stato avviato dieci anni fa e da allora in effetti molto è cambiato. Le stampanti 3D non sono più una rarità, l’ABS non è l’unico filamento, i sistemi di movimento sono precisi e gli estrusori non hanno più perdite. Pertanto sono necessarie modifiche agli algoritmi di slicing.

Le strategie di Slic3r per i supporti FDM e il supporto oggetto su supporto differiscono dalle altre affettatrici FDM. Vale a dire, Slic3r è stato progettato per utilizzare le capacità di bridging FDM per aggirare la necessità di supporti. E stampare ponti con ABS non è stato così facile: i ponti erano affidabili solo se si estrudevano fili spessi. La combinazione dei ponti spessi con i supporti richiedeva che gli oggetti del primo strato venissero stampati più spessi degli altri strati, portando a brutti lati inferiori degli oggetti.

Tutte le altre affettatrici FDM si sono evolute in modo diverso: il primo strato sui supporti viene stampato con lo stesso flusso degli altri strati, quindi il primo strato sui supporti sembra più bello purché i fili siano collegati in modo affidabile o supportati da un’interfaccia di supporto. Per i materiali di supporto che non creano ponti in modo affidabile, è necessario un supporto denso per oggetti di alta qualità rispetto ai supporti.

A partire da questa versione, PrusaSlicer offre nuovi ponti di stampa e primi livelli di oggetti su supporti con lo spessore del livello predefinito. Il comportamento del bridging è configurabile con una nuova opzione booleana “thick_bridges”. Se abilitato, viene applicata la vecchia strategia di bridging Slic3r, mentre se disabilitato, il bridging viene eseguito in modo simile agli altri slicer FDM, portando a una migliore qualità del fondo rispetto ai supporti. Con “thick_bridges” disabilitato, il comportamento di “bridge_flow_ratio” cambia: Invece di modificare la sezione trasversale di un’estrusione arrotondata mantenendo costante lo spazio tra i fili di estrusione, viene mantenuta la spaziatura dell’estrusione modificando la larghezza e/o l’altezza dell’estrusione per raggiungere il valore prescritto rapporto di estrusione.

ponti_spessi

FDM supporta miglioramenti

I supporti FDM sono stati sostanzialmente ridisegnati in questa versione, rispondendo ai frequenti (e legittimi) reclami degli utenti:

  1. Nuova forma “accogliente” delle colonne di sostegno. Per impostazione predefinita, i progetti PrusaSlicer supportano le colonne in una griglia regolare per la stabilità. I supporti proiettati in una griglia regolare hanno un’area minima ben definita, tuttavia tendono a fuoriuscire dalle aree che supportano lungo le pareti dell’oggetto fino al piano di stampa. Abbiamo recentemente implementato supporti “snug”, che mantengono la forma degli sbalzi supportati, evitando così le perdite con il compromesso di una stabilità del supporto possibilmente inferiore #555 #740 #902 #1346 #1993 #2708 #3083 #4783 #6240. La forma di supporto è configurata con un nuovo campo di configurazione “support_material_style”, che accetta due valori: “grid” (il vecchio comportamento) vs. “snug” (la nuova forma). I supporti “snug” accettano un nuovo parametro “support_material_closing_radius”, che controlla l’unione di isole di supporto vicine e la semplificazione della forma della colonna di supporto. Abbiamo preso in prestito una funzione smooth_outward()da Cura scritta da @BagelOrb per semplificare notevolmente i contorni dell’isola di supporto durante l’unione di più isole sporgenti di supporto.snug_vs_grid
  2. Se è abilitato “supporto solo su piastra di costruzione”, le colonne di supporto vengono nuovamente tagliate per non atterrare sopra un oggetto. Tuttavia questo potrebbe rendere la colonna troppo piccola per essere stabile #915 #1340 #3980 #4199 .
  3. Gli esecutori di supporto hanno di recente avuto la precedenza su “supporti solo sulla piastra di costruzione” e su “non supportano i ponti”. Questo vale sia per le mesh del modificatore esecutore che per quello del blocco e per i supporti di pittura. Anche il fatto che gli esecutori abbiano la precedenza sui blocchi è indicato ordinando le maglie degli esecutori sotto i modificatori dei blocchi nel pannello laterale (il volume più in basso nell’elenco ha sempre la precedenza su un volume più in alto nell’elenco) #1870 #1997 #2801 # 3741 #3831 #5105 #5748 .
  4. È stato aggiunto un nuovo valore di configurazione “support_material_bottom_contact_distance” per completare “support_material_contact_distance”. Se “support_material_bottom_contact_distance” è positivo, definisce lo spazio di separazione tra le superfici superiori dell’oggetto e il fondo delle torri di supporto, mentre “support_material_contact_distance” definisce lo spazio tra il supporto e le superfici inferiori dell’oggetto. Se “support_material_bottom_contact_distance” è impostato su zero, il vecchio “support_material_contact_distance” si applica sia alla distanza superiore che a quella inferiore.
  5. Allo stesso modo, è stato aggiunto un nuovo valore di configurazione “support_material_bottom_interface_layers” per completare “support_material_interface_layers”. Se “support_material_bottom_interface_layers” non è negativo, definisce il numero di strati di interfaccia di supporto denso tra le superfici superiori dell’oggetto e la parte inferiore delle torri di supporto, mentre “support_material_interface_layers” definisce il numero di strati di interfaccia di supporto denso tra il supporto e le superfici inferiori dell’oggetto. Se “support_material_bottom_interface_layers” è impostato su “stesso di top” (valore -1), il vecchio “support_material_interface_layers” viene utilizzato per definire entrambi. Se “support_material_interface_layers” è impostato su zero, non vengono creati né i livelli di interfaccia di supporto superiore né inferiore #4288 .
  6. La densità e l’espansione del primo livello di supporto è configurabile di recente con “raft_first_layer_density” e “raft_first_layer_expansion”, consentendo di disabilitare completamente l’espansione del primo livello di supporto. Mentre i due valori di configurazione iniziano con “raft_”, vengono applicati al primo livello di supporto se il raft è disabilitato #1165 #2568 #3772 .
  7. Il modello dell’interfaccia di supporto è nuovamente configurabile con “support_material_interface_pattern” su “default”, “rettilineo” e “concentrico”. L’impostazione predefinita è concentrica per le interfacce solubili e rettilinea per le interfacce di supporto non solubili. Ci aspettiamo che queste impostazioni siano utili per la stampa con interfacce solubili: mentre il motivo concentrico può produrre superfici più lisce ai lati di un oggetto, l’interfaccia di supporto rettilinea può produrre superfici orizzontali più belle #1197 .
  8. Interfacce di supporto solubili migliorate su colonne di base di supporto non solubili ( #5823 ). Stampare un’interfaccia solubile direttamente su un supporto sparso non solubile non è una buona idea. Il materiale di supporto solubile spesso non si attacca correttamente al materiale non solubile e il materiale solubile potrebbe non colmare gli spazi tra le linee di supporto sparse. Basato su #5903 di @spiky2021, PrusaSlicer estrude di nuovo metà degli strati di interfaccia di supporto con il materiale di base di supporto, in modo che il materiale di interfaccia di supporto solubile denso venga estruso su uno strato di materiale di interfaccia di base denso. Mentre il modello dell’interfaccia solubile è ora configurabile con “support_material_interface_pattern”, l’interfaccia densa non solubile viene sempre estrusa con un modello rettilineo, che si collega meglio al supporto sparso.
  9. L’algoritmo di riempimento a zig-zag sparso FDM è stato riprogettato per supportare in modo affidabile livelli di interfaccia di supporto densi #2969 #4295 #4951 .
  10. La tesa viene calcolata di nuovo intorno all’oggetto, non intorno al primo strato del supporto e i supporti sono stampati sopra la falda su altri strati #713 #1156 #3395 #3396 .
  11. Una singola linea perimetrale viene estrusa intorno al primo strato di supporto per migliorare l’adesione del piano di stampa #756 #2101 .
  12. Supporto primo strato utilizzato per essere stampato con motivo concentrico per materiali solubili, viene stampato di nuovo con riempimento rettilineo tutto il tempo #684 #1445 .
  13. Relativo all’interfaccia utente, supporti per la pittura: la finestra di dialogo aggiuntiva per l’impostazione automatica tramite l’angolo gizmo è stata rimossa, il dispositivo di scorrimento è ora incorporato nella finestra di dialogo principale dei supporti per la pittura su gizmo.

Correzioni di bug del generatore di supporto FDM

  • Risolto il problema con la fuoriuscita dei supporti FDM utilizzando il vecchio stile di supporto “grid” a causa di alcuni problemi di imprecisione numerica #5209 #6067 .
  • Perdita ridotta dei supporti FDM utilizzando il vecchio stile di supporto “griglia” attraverso i fori degli oggetti. La perdita era significativa con oggetti a parete sottile. Recentemente i supporti possono solo riempire una cella della griglia, mai espandersi in una cella della griglia di supporto vicina, e il rischio di perdite attraverso pareti sottili è stato ridotto con un sovracampionamento della griglia di supporto #5054 .

support_leakage

  • Risolto un problema di rallentamento eccessivo del raffreddamento sui supporti. Il raffreddamento è stato calcolato in modo errato dal momento in cui è stato stampato uno strato di supporto quando lo strato di supporto è stato stampato alla propria altezza Z. PrusaSlicer può stampare un livello di supporto alla propria altezza Z non sincronizzata con nessun altro oggetto di stampa altezza Z per garantire la distanza Z del contatto di supporto. Poiché il rallentamento del raffreddamento è stato applicato in modo non corretto a ciascuno strato in modo indipendente, uno strato di solo supporto e il successivo strato dell’oggetto sono stati rallentati inutilmente. Recentemente PrusaSlicer applica una logica di rallentamento del raffreddamento a tutti i livelli di supporto insieme al livello oggetto supportato #984 .
  • Risolto il problema con i supporti di pittura su superfici orizzontali, in cui le regioni dipinte erano assegnate in modo errato a uno strato sotto o a uno strato sopra le regioni dipinte a causa di problemi numerici #5948 .
  • Risolto il problema con l’eccessiva espansione della zattera di supporto del primo strato. PrusaSlicer era usato per riempire i fori nella zattera di supporto del 1° strato apposta per migliorare l’adesione, tuttavia questo comportamento è stato trovato troppo aggressivo. Il riempimento dei fori nel primo strato di supporto ora è disabilitato mentre l’utente può applicare nuovamente un’espansione raft più elevata se si desidera un’adesione del primo strato più forte #430 .
  • Perdita fissa della zattera di supporto del primo strato attraverso le pareti sottili dell’oggetto durante l’espansione della zattera di supporto del primo strato. La zattera di supporto del primo strato viene espansa con attenzione con più passaggi per evitare la perdita #2245 .
  • Risolte le interfacce di supporto non necessarie create dalla fusione aggressiva delle interfacce di supporto concentriche #4570 .
  • Riabilitato “Applica supporto per i primi N livelli” anche se “Genera supporti” è disabilitato #470 .

Miglioramenti FDM Raft #1277 #2823 #3425 #6053

  • La zattera ora supporta la configurazione separata di “raft_contact_z_distance”. In effetti, vogliamo che “raft_contact_z_distance” sia più piccolo di “contact_z_distance”, poiché apprezziamo la qualità del primo strato di oggetti sull’interfaccia raft ed è facile rimuovere raft con una lama.
  • “raft_expansion” è configurabile di recente.
  • Il primo livello dell’oggetto sopra l’interfaccia della zattera non è più stampato con un flusso ponte, ma un flusso normale. Questo produce una superficie dell’oggetto inferiore molto più bella.
  • Poiché il primo livello dell’oggetto sopra l’interfaccia della zattera non viene più stampato con un flusso di bridging, il modello di riempimento inferiore viene rispettato di nuovo #3507 .
  • La velocità e l’accelerazione del primo livello oggetto sopra l’interfaccia raft sono nuovamente configurabili con “first_layer_speed_over_raft” e “first_layer_acceleration_over_raft” #6166 #6623 .

La rielaborazione della zattera è basata su #6003 grazie a @nemart69 per il contributo.

Altezza del primo strato

Le seguenti proprietà del generatore di supporto FDM sono state modificate:

  • Il parametro “first_layer_height” è stato reso globale per la stampa, non è più specifico per l’oggetto. Consideriamo l’altezza del primo strato come una proprietà della stampa. Anche lo skirt e la tesa sono calcolate e stampate per più oggetti in un unico passaggio, quindi consentire un’altezza del primo strato diversa per oggetti diversi era discutibile fin dall’inizio.
  • Poiché ora first_layer_height è specifico per la stampa, “first_layer_height” non supporta più valori relativi rispetto all’altezza del livello dell’oggetto. Pertanto, “first_layer_height” definito rispetto all’altezza del livello dell’oggetto viene nuovamente convertito in un valore assoluto durante l’importazione di un file di configurazione o di un file di progetto.

Miglioramenti brim e skirt

Bordi interni, bordo per oggetto

Le versioni precedenti di PrusaSlicer generavano solo il bordo esterno, lasciando eventuali buchi nel primo strato senza bordo e costringendo gli utenti a utilizzare soluzioni alternative utilizzando parti di oggetti extra sottili, ecc. A partire da questa versione, è possibile generare bordi esterni, bordi interni o entrambi.

Inoltre, le impostazioni del bordo sono ora specifiche dell’oggetto e il bordo non viene generato per tutti gli oggetti contemporaneamente, ma per ciascuno di essi separatamente. Ciò consente di attivare la falda solo per alcuni oggetti, utilizzare larghezze di falda diverse per i singoli oggetti ecc. #286 #651 #1033 #2182 #2290 #2455

Compensazione del brim e del piede di elefante, offset del brim configurabile

Scopo della tesa è aumentare l’adesione dell’oggetto al piano di stampa, il che significa che deve essere fuso all’oggetto. D’altra parte, deve essere possibile rimuovere la tesa senza danneggiare l’oggetto stesso. Ciò significa che la distanza tra l’oggetto e la tesa deve essere scelta con attenzione. Questo problema è ulteriormente alleviato dall’effetto zampa di elefante, sempre presente sul primo strato di una stampa.

Nelle versioni precedenti, la compensazione del piede di elefante (EFC) veniva applicata sul primo strato dell’oggetto, mentre la falda veniva lasciata come se non fosse stato applicato l’EFC. Ciò porta a un piccolo spazio tra l’oggetto e l’anello più interno del brim, che dovrebbe essere riempito a causa dell’effetto del piede di elefante. Tuttavia, ciò rendeva l’effettivo incollaggio del brim abbastanza sensibile alla regolazione dell’altezza z dell’ugello e talvolta portava a un fissaggio inadeguato del brim all’oggetto.

A partire da questa versione, il bordo viene generato dopo EFC dell’oggetto. L’offset della falda può essere ulteriormente regolato da un nuovo parametro di configurazione “brim_separation” (che è indipendente da EFC), consentendo all’utente di regolare con precisione l’offset della falda a proprio piacimento. #4850 #3779

Finché l’offset del bordo è impostato su zero, l’EFC non dovrebbe mai staccare il bordo dall’oggetto. #3870 #6795 #4736 #3949 #3915 #4736 #6602

Quando si carica un file di progetto (3MF) memorizzato dalla versione precedente di PrusaSlicer, il valore “brim_separation” è impostato uguale al valore di compensazione del piede di elefante per produrre lo stesso bordo creato con PrusaSlicer che ha salvato quel file di progetto.

Paravento

Lo skirt stampata attorno agli oggetti stampati è presente in PrusaSlicer da anni (ed era prima nell’originale Slic3r). Ci sono diversi usi che lo skirt può servire e per cui le persone la usano. L’adescamento dell’ugello all’inizio della stampa, l’adescamento dopo un cambio utensile o l’utilizzo di uno skirt molto alta come paravento sono le operazioni più comuni. Skirt è uno strumento multiuso e questa versione apporta diversi cambiamenti nella sua configurazione e comportamento per rendere il suo utilizzo più intuitivo (soprattutto per quanto riguarda il suo utilizzo combinato con una falda).

La vecchia opzione di configurazione booleana “draft_shield” è ora un’enumerazione e consente la seguente selezione:

  • Disabilitato: lo skirt non viene utilizzata come paravento, viene stampata attorno alle falde di tutti gli oggetti all’altezza specificata
  • Limitato: lo skirt è il più vicino possibile agli oggetti come specificato da “skirt_distance” (possibilmente intersezione delle falde), è costruita all’altezza specificata (“skirt_height”)
  • Abilitato: come “Limitato”, tranne che “skirt_height” viene ignorato e lo skirt è alto quanto l’oggetto più alto

draft_shield

Ciò consente al bordo di migliorare l’adesione del letto di stampa del paravento e di spingere il paravento il più vicino possibile all’oggetto, senza creare intersezioni tra bordo e bordo quando l’utente non intende utilizzare il bordo al posto del paravento. #4802 #5056 #4736 #3692 #6544

Quando si utilizza il paravento, i giri dello skirt vengono stampati ininterrottamente e gli anelli del brim vengono tagliati. Anche se può avere più senso farlo al contrario, accorciare lo skirt è inaccettabile a causa del parametro “min_skirt_length” e del possibile utilizzo per lo spurgo dell’ugello.

Volumi negativi, modificatori e regole di esclusione dell’estrusore

PrusaSlicer supporta i “volumi negativi” per sottrarre pezzi di geometria da un modello #4920 . Mentre c’era un modo per ottenere un effetto simile impostando un numero zero di livelli superiore/inferiore, zero perimetri e nessun riempimento nelle versioni precedenti di PrusaSlicer, i nuovi “volumi negativi” sono molto più facili da usare e vengono elaborati più velocemente e il vecchio la soluzione alternativa ha prodotto artefatti come in #5095 . Leggi di più nella Documentazione .

immagine_volume_negativo

PrusaSlicer ritaglia nuovamente i volumi e applica i modificatori nell’ordine in cui sono presentati nel pannello laterale, l’ultimo volume ritaglia il primo, il secondo modificatore sovrascrive il precedente modificatore o volume. I valori di configurazione applicati a oggetti, volumi e modificatori vengono nuovamente raccolti nel seguente ordine:

  1. Parametri globali
  2. Parametri dell’oggetto
  3. Parametri del volume
  4. Parametri della gamma di livelli
  5. Parametri del modificatore
  6. ID estrusore tramite pittura multi-materiale

Questa è una modifica sostanziale, dove nelle versioni precedenti di PrusaSlicer i parametri del modificatore venivano applicati sui parametri degli oggetti, ignorando i parametri dei volumi, i modificatori dell’intervallo di livelli e altre mesh di modifica con cui si sovrappongono #5986 . Ciò è stato particolarmente doloroso per le stampe multi-materiale, in cui un’applicazione di una mesh di modifica per impostare un tasso di riempimento ha reimpostato l’ID dell’estrusore sull’oggetto predefinito uno #2657 #3012 #6091 . Inoltre, un estrusore “Predefinito” assegnato a una mesh di modifica o a un modificatore di intervallo di livelli non modifica l’estrusore della geometria sottostante.

Il ritaglio reciproco dei volumi multi-materiale rispetta nuovamente l’ordine nell’elenco degli oggetti mentre nelle versioni precedenti di PrusaSlicer i volumi venivano prima raggruppati per un ID estrusore e quindi ritagliati #3272 #3318 #4114 #5831 . Si noti che anche l’ordine di ritaglio è stato modificato: l’ultimo volume ritaglia nuovamente il volume precedente. Questo è un cambiamento importante, tuttavia riteniamo che ne valga la pena poiché il nuovo ordine è naturale soprattutto per il concatenamento degli attributi del modificatore.

I seguenti bug sono stati corretti durante il refactoring:

  • I modificatori applicati su un oggetto con la semplificazione del contorno (parametro “risoluzione”) hanno prodotto spazi all’interno di un oggetto lungo il confine del modificatore # 6451 grazie a @supermerill per aver sottolineato il problema.

Fuzzy Skin #2010

Abbiamo portato la popolare funzionalità Fuzzy Skin di Cura in PrusaSlicer, grazie al team di Cura per aver mantenuto l’open source di Cura. La funzione Fuzzy Skin in PrusaSlicer funziona come in Cura: la fuzzificazione viene applicata solo ai perimetri esterni, i perimetri dei fori possono essere sfocati o meno. Il perimetro viene ricampionato con una dimensione del passo casuale e ogni nuovo punto di campionamento viene spostato all’interno o all’esterno del perimetro di una lunghezza casuale. Questo semplice algoritmo produce risultati sorprendentemente piacevoli adatti per i manici degli strumenti o semplicemente per dare alla superficie di stampa un nuovo aspetto interessante o per nascondere le imprecisioni di stampa. Leggi di più nella Documentazione .

fuzzy_skin_image

Torre di spurgo multimateriale

  • È noto che il filamento solubile non si lega bene ad altri materiali. Pertanto, per la stabilità della torre di pulizia, PrusaSlicer non utilizza filamenti solubili per i perimetri della torre di pulizia o riempimento sparso della torre di pulizia #1948 .
  • È noto che il filamento solubile non fa un ponte bene. Pertanto PrusaSlicer non pulisce mai un filamento solubile su una torre di pulizia sparsa, ma stampa uno strato denso di filamento non solubile sullo strato sottostante affinché il filamento solubile si attacchi al #2818 .
  • Il primo strato della torre di pulizia viene appena stampato con materiale non solubile, se possibile, riordinando le estrusioni del primo strato per iniziare con il materiale solubile, quindi il materiale solubile non verrà spurgato al primo strato n . 3953 .
  • Risolto un problema per cui la velocità di spostamento non veniva utilizzata quando si passava da una posizione di cambio utensile personalizzata alla torre di pulizia n . 5483 .
  • Il primo strato della torre di pulizia è stato estruso di recente con first_layer_speed.
  • Posizionamento migliorato delle regioni di adescamento dell’estrusore su letti circolari #6459 .
  • Prima di passare alla torre di pulizia, il filamento viene nuovamente ritratto utilizzando una lunghezza di retrazione normale, mentre prima era retratto utilizzando la lunghezza di retrazione del cambio utensile.
  • La larghezza del brim della torre di pulizia è stata recentemente regolabile.

Supporto per modelli di aeroplani 3DLabPrint

PrusaSlicer supporta di recente lo slicing dei modelli di aeroplani 3DLabPrint. Questi modelli 3DLabPrint sono stati progettati per essere sezionati con Simplify3D con un unico perimetro e nessun riempimento per produrre un’unica superficie alare perimetrale rinforzata da singole nervature perimetrali. Dal punto di vista della geometria solida, questi modelli contengono corpi sovrapposti, quindi non sono modelli solidi validi. Dopo che il modello è stato suddiviso, i poligoni in ogni livello vengono uniti e ulteriormente elaborati con una libreria Clipper dalla maggior parte degli slicer FDM, inclusi PrusaSlicer, Cura e molto probabilmente anche dal closed source Simplify3D, tuttavia i slicer differiscono in quale regola di riempimentosi applicano per impostazione predefinita. Simplify3D usa sempre la regola di riempimento Pari-Dispari, mentre Cura e PrusaSlicer usano la regola di riempimento Positivo per impostazione predefinita. Per consentire lo slicing dei modelli 3DLabPrint, PrusaSlicer implementa una nuova opzione “Slicing Mode”, che consente di passare dalla regola “Positive” (predefinita) a quella “Even / Odd”. Ancora un’altra nuova opzione “Slicing Mode” “Close Holes” fa in modo che PrusaSlicer riempia tutte le strutture interne #3062 #3708 .

Stampa sequenziale

  • Quando è attiva la stampa sequenziale, c’è sempre il rischio che la testina di stampa colpisca alcuni oggetti. È possibile impostare la distanza e l’altezza del gioco dell’estrusore in modo che PrusaSlicer controlli eventuali collisioni. Le aree libere ora vengono visualizzate anche nella scena quando si spostano oggetti e in caso di collisione #4195 .

seq_print_limits

  • Poiché non supportiamo la stampa a colori con stampa sequenziale, indichiamo nuovamente il fatto mostrando l’icona “Stampa a colori” sul cursore verticale del visualizzatore di codici G in grigio e mostriamo anche una descrizione comando che spiega perché l’azione non è disponibile #5437 .
  • La cucitura allineata non ha funzionato correttamente durante la stampa sequenziale bd2cbea

Generatore di codici G, versioni firmware

Supporto del moderno firmware Marlin

Il firmware della stampante MK2 e MK3 di Prusa è in esecuzione su un microcontrollore Atmel a 8 bit e si basa su un Marlin legacy pesantemente modificato, mentre la stampante Prusa3D Mini e i nostri prossimi modelli di stampanti 3D sono dotati di schede a 32 bit che eseguono Marlin 2 come controller di movimento . Fino ad ora, PrusaSlicer ha prodotto codice G solo per il firmware Marlin legacy. Abbiamo recentemente suddiviso il sapore del firmware Marlin in “Marlin (legacy)” e “Marlin 2” per poter supportare le nuove funzionalità di Marlin 2, soprattutto il controllo dell’accelerazione a grana più fine, separando l’accelerazione durante il viaggio dall’accelerazione durante l’estrusione #1089 # 1994 #6457 .

Con la versione firmware ‘Marlin (legacy)’ attiva, M204 Pa Rb Ta viene emesso nel preambolo del codice G, dove a, b sono i valori dai limiti della macchina, mentre M204 S… viene emesso per le impostazioni di accelerazione dipendenti dal tipo di caratteristica . Con la versione firmware ‘Marlin 2’ attiva, M204 Pa Rb Tc viene emesso nel preambolo del codice G, dove a, b, c sono i valori dai limiti della macchina, mentre M204 P… viene emesso per le impostazioni di accelerazione dipendenti dal tipo di caratteristica , senza ignorare l’accelerazione di viaggio.

Altre nuove funzionalità

  • Aggiunto nuovo parametro per abilitare/disabilitare il riempimento degli spazi. Fino ad ora era possibile disabilitare il riempimento del gap impostando la velocità di riempimento del gap su zero, il che era contro intuitivo #2956 #5999 grazie @xorza .
  • È possibile impostare nuovamente la velocità di spostamento per l’asse Z indipendentemente dalla velocità di spostamento negli altri assi. Il nuovo valore di configurazione “travel_speed_z” è predefinito a zero, il che significa che viene utilizzato “travel_speed” al suo posto, essendo quindi retrocompatibile con i vecchi profili e file di progetto #2945 #3995 #6365 #6369 grazie @martinbudden .
  • RepRapFirmware specifico: usa “M204 P” invece di “M204 S” per controllare l’accelerazione #5740 grazie @rsobik .
  • PrusaSlicer genera nuovamente il codice M73 con i tempi rimanenti al successivo cambio colore o all’evento di stampa in pausa. Il tempo rimanente G-code M73 è stato esteso con due nuovi tempi rimanenti: Cxx e Dxx per la modalità stampante normale e invisibile (silenziosa).
  • Aggiunta l’elaborazione macro dei codici G personalizzati color_change_gcode, pause_print_gcode e template_custom_gcode quando li emetti nel codice G di output. #5782
  • Aggiunto un nuovo segnaposto per il cambio utensile personalizzato gcode (toolchange_z), che fornisce la coordinata Z del cambio utensile nella parte superiore di una torre di pulizia, mentre layer_z fornisce la coordinata Z dell’ultimo livello oggetto stampato. Le due coordinate Z differiscono nel caso in cui la torre di cancellazione sia stata generata senza strati sparsi #3834 .
  • Il post-processore del codice G viene eseguito di nuovo prima che il codice G venga copiato nella posizione di destinazione. In effetti, l’esecuzione di uno script di post-elaborazione sulla scheda SD non è una buona idea. Si prega di notare che il visualizzatore del codice G visualizza ancora il codice G prima della post-elaborazione # 6000 grazie @xorza .
  • Il framework post-processore G-code è stato esteso: #6042
    1. La nuova variabile d’ambiente SLIC3R_PP_HOST contiene una tra “File”, “PrusaLink”, “Repetier”, “SL1Host”, “OctoPrint”, “FlashAir”, “Duet”, “AstroBox” …
    2. La nuova variabile d’ambiente SLIC3R_PP_OUTPUT_NAME contiene il nome del file G-code incluso il percorso (per SLIC3R_PP_HOST == “File”) o un nome che verrà dato al file dopo che è stato caricato sull’host (PrusaLink, Octoprint…)
    3. Lo script di post-elaborazione può suggerire un nuovo nome di file di output (probabilmente basato su SLIC3R_PP_OUTPUT_NAME) salvandolo come una singola riga in un nuovo file temporaneo “nome di output”. Il nome del file “output name” viene creato aggiungendo al nome del file G-code di input il suffisso “.output_name”.
  • La configurazione memorizzata in G-code è stata nuovamente delimitata con “; prusaslicer_config = inizio” e “; prusaslicer_config = fine”. Questi delimitatori assomigliano a qualsiasi altra coppia di configurazione chiave/valore apposta per essere compatibili con le versioni precedenti di PrusaSlicer che tentano di analizzare la configurazione dal codice G. Il visualizzatore del codice G legge l’intestazione “; generate da PrusaSlicer ….” e se il codice G è stato generato da PrusaSlicer 2.4.0-alpha0 e versioni successive, si aspetta che il blocco di configurazione sia racchiuso dai nuovi delimitatori. Ciò rende il parser del codice G più robusto in futuro e i codici G possono ora essere caricati dal visualizzatore del codice G anche se un plug-in OctoPrint aggiunge i propri commenti alla fine del codice G dopo la configurazione #6730 di PrusaSlicer .

I seguenti bug del generatore di codice G sono stati corretti:

  • PrusaSlicer emette varie annotazioni per uso proprio, vale a dire per aumentare il codice G per la visualizzazione. Ad esempio, non è stato possibile indovinare l’altezza del livello dal codice G in modo affidabile per i ponti o per i livelli su supporti, quindi PrusaSlicer emette “;HEIGHT:xxx” quando cambia l’altezza del livello corrente. Tuttavia, esiste il rischio che l’utente possa inserire la stessa annotazione in alcuni blocchi del codice G personalizzato, confondendo così il visualizzatore del codice G. Il PrusaSlicer controlla nuovamente i commenti riservati nei codici G personalizzati e emette un avviso sia quando un tale commento del codice G viene inserito nel parametro del codice G personalizzato sia quando viene prodotto un codice G utilizzando un blocco G-code personalizzato così discutibile #5538 .
  • Risolto un problema in “evita di attraversare i perimetri” con il wipe dell’estrusore abilitato, dove si producevano corse non necessarie nella direzione opposta della corsa del wipe 8f293f0 . 613f961
  • Risolto un bug nella formula #5893 per aumentare la velocità della ventola .
  • Corretta l’inizializzazione del generatore di numeri casuali per il processore macro personalizzato G-code #5219 (commento) .
  • Risolto il problema con il rallentamento del primo livello nel caso in cui fosse abilitata la funzione “autospeed”. Correzione unita da slic3r a monte, grazie @alranel #5829 .
  • Risolto il problema con tassi di riempimento molto bassi a causa dell’arrotondamento a zero seguito da una divisione per zero #5910 .
  • Rielaborato il generatore di skirt per generare lo skirt solo a livelli non vuoti (strati che effettivamente estrudono oggetti o supporti) e per rispettare l’altezza minima del livello. Il generatore dello skirt si ferma al primo strato in cui queste due condizioni non possono essere soddisfatte contemporaneamente. #5652 .
  • Risolto il problema con la suddivisione non necessaria delle superfici di riempimento solide. Si trattava di un problema di regressione introdotto in PrusaSlicer 2.3.0 durante l’implementazione dell’ancoraggio di riempimento #4437 #5988 .
  • Applicazione fissa di cuciture dipinte nel caso in cui i triangoli dipinti fossero rigorosamente verticali.
  • Risolto il problema con la funzione ” Stira tutte le superfici” #5703 .
  • Risolto il problema con l’esportazione del codice G per il firmware “Nessuna estrusione” non emettendo l’asse E. La correzione è parziale in quanto nessuna estrusione viene mostrata dall’anteprima finale del codice G #6023 .
  • Risolto il problema con l’applicazione inaffidabile delle sostituzioni del filamento alle sezioni G-code personalizzate. A volte è stato utilizzato il valore di configurazione principale invece di un override del filamento e viceversa #3649 .

Miglioramenti del visualizzatore di codici G

Le seguenti nuove funzionalità sono state implementate per il visualizzatore G-code:

  • Il codice G supporta di recente la visualizzazione delle cuciture #6755 .
  • Il visualizzatore G-code supporta anche la visualizzazione dello snippet G-code centrato attorno alla linea G-code attiva. Lo snippet del codice G viene mostrato una volta che la posizione dell’estrusore viene spostata utilizzando il cursore orizzontale.
  • Un numero di riga del codice G corrente ora viene mostrato ora sul cursore orizzontale invece di un indice di una mossa #5611 .
  • Le estrusioni prodotte dal codice G iniziale personalizzato non sono state visualizzate come estrusioni, ma come linee di viaggio. Vengono nuovamente visualizzati correttamente come estrusioni personalizzate e vengono visualizzati come estrusi al 1° strato indipendentemente dalla loro posizione Z e dall’altezza di estrusione.
  • Il codice G può essere nuovamente colorato dalla temperatura dell’estrusore attivo #4402 #6106 grazie @combolek .
  • Il tempo di stampa del primo strato è nuovamente disponibile nella legenda del codice G #5763 .
  • Il filamento utilizzato (lunghezza e peso) per estrusore e per intervallo di cambio colore è mostrato di recente nella legenda del codice G #2825 #5980 .
  • La legenda del codice G potrebbe non adattarsi ai piccoli schermi, quindi è stata recentemente resa scorrevole.

Sono stati corretti i seguenti bug:

  • Il peso e il costo del filamento utilizzato vengono visualizzati correttamente per i codici G generati da PrusaSlicer dal visualizzatore di codici G autonomo analizzando la densità e il costo del filamento dalla sezione di configurazione del codice G.
  • I codici G di Prusa Tc, Tx e T? specifico per Multi Material Upgrade (MMU) non produce più avvisi per la console #6006 .
  • I codici G generati da PrusaSlicer vengono ora importati correttamente anche se il codice G è preceduto da un’intestazione aggiuntiva, ad esempio generato da ArcWelder #6117 .
  • Esteso il processore G-code per leggere G28 (sposta all’origine) #5843 .
  • Compatibilità migliorata con i nuovi codici G di Simplify3D estraendo le dimensioni del piano di stampa dal loro codice G.
  • Simile al firmware Marlin 2, RepRapFirmware si aspetta che M204 P invece di M204 S imposti l’accelerazione durante l’estrusione #5599 #5740 grazie @rsobik .
  • Risolto il problema con il menu a comparsa di configurazione del dispositivo di scorrimento orizzontale: l’abilitazione/disabilitazione di “Mostra tempo stimato” e “Mostra altezza oggetto” non funzionava correttamente #6650 .
  • Specifico per più materiali: il cursore orizzontale non funzionava correttamente con “Nessun livello sparso” abilitato per la torre di cancellazione, in cui gli strati della torre di cancellazione non sono necessariamente estrusi alla stessa altezza degli strati dell’oggetto. Questo è ora risolto avviando un nuovo “livello” nella barra di scorrimento verticale ogni volta che la stampa Z cambia (Z viene abbassata fino a una torre di cancellazione sparsa o Z torna in cima a un oggetto) #6232 .
  • Analisi migliorata del codice G di Simplify3D: le densità e i diametri dei filamenti sono stati estratti di recente, consentendoci di calcolare la lunghezza e il peso del filamento utilizzato per i codici G S3D a2788f3 .

Disposizione, orientamento automatico SLA

  • La disposizione ora cercherà la rotazione adatta quando si organizzano oggetti più grandi del letto 49c6ce7
  • La disposizione ignora gli oggetti che non possono stare in un letto singolo, l’utente viene avvisato quando succede c30ac4b
  • In PrusaSlicer 2.3.0 abbiamo modificato l’algoritmo di orientamento automatico SLA. Alcuni utenti non erano contenti della modifica, quindi forniamo una finestra di dialogo di configurazione sul gizmo Ruota che consente di selezionare l’algoritmo di orientamento automatico. #5714

orientamento_ottimizzato

Miglioramenti SLA e correzioni di bug

  • La cancellazione dell’affettatura è stata molto lenta quando è stata tentata durante la fase di rasterizzazione. Questo dovrebbe essere risolto. #6253
  • L’esportazione della funzione STL non produce più normali invertite quando viene applicato il mirroring #6406 978b359
  • L’anteprima SLA ora non mostra l’oggetto completo quando il dispositivo di scorrimento è al primo livello c54ce89
  • Rifilatura dopo svuotamento in modalità SLA e57eca0 82954ba
  • SLA I fori vengono ora eseguiti uno per uno e viene visualizzato un avviso quando l’operazione non riesce. Si spera che ciò aumenti la robustezza quando si ha a che fare con maglie complicate o rotte. 4b9de03 .. 3e5e020
  • Viene visualizzata una notifica per salvare prima le modifiche quando si tenta di suddividere o salvare il progetto durante la modifica dei punti di supporto SLA. 3fd36f0 7057348
  • Risolto un possibile arresto anomalo durante l’eliminazione di un oggetto durante la modifica dei punti di supporto SLA (bug introdotto tra 2.2.0 e 2.3.0) #5736
  • Specifico per macOS: Backspace in SLA gizmo ora elimina i punti selezionati (come farebbe un’eliminazione) e non l’intero oggetto, il che era abbastanza inaspettato. b30a6d5

Stato del progetto #5671 #6212 #5998 #6473

A causa dei limiti tecnici dell’architettura interna ereditata da Slic3r originale, PrusaSlicer non aveva alcun concetto di progetto aperto. Cioè, non ha tracciato se il contenuto corrente del plater è stato modificato da quando è stato caricato, ecc. Ciò ha portato a momenti disperati in cui un utente ha chiuso l’applicazione e invece di essere interrogato sulle modifiche non salvate, sarebbero state tutte scartate senza preavviso.

Questa versione introduce questo concetto di progetto modificato. Quando viene caricato un 3MF e gli oggetti vengono modificati, viene mostrato un asterisco nella barra del titolo come indicazione delle modifiche invariate nel progetto. Questo scompare dopo il salvataggio delle modifiche. Il tentativo di chiudere l’applicazione, aprire un altro progetto ecc. aprirà una finestra di dialogo che indica se le modifiche devono essere salvate prima.

Il progetto attualmente modificato viene reimpostato su un progetto vuoto quando viene creato un nuovo progetto ( File->New Project). Viene visualizzata una finestra di dialogo di conferma quando sono presenti modifiche non salvate nel progetto corrente. Sebbene il contenuto del plater sia ancora recuperabile da Annulla dopo l’apertura di un nuovo progetto, il collegamento al progetto aperto in precedenza non verrà recuperato e gli oggetti verranno considerati come parti del nuovo progetto (non salvato). Lo stesso vale per ‘Annulla/ripeti’, cioè annulla l’azione ma non cambia la corrispondenza con un progetto, quindi quando ad esempio apri progetto1, sposti oggetto, apri progetto2, annulla e salva, il contenuto di progetto1 sarà salvato in project2. Inoltre, la creazione di un nuovo progetto non influisce sui profili modificati.

Anche la modifica dei parametri di configurazione nei profili selezionati viene considerata come una modifica nel progetto attualmente attivo. Quando si tenta di chiudere l’applicazione con una tale modifica non salvata, all’utente verrà nuovamente chiesto se salvare il progetto. Nel caso in cui selezionino ‘Sì’, il profilo modificato verrà salvato nel 3MF e l’applicazione verrà chiusa. Tuttavia, rispondendo “No” si chiuderà il progetto non salvato e la “finestra di dialogo Modifiche non salvate” (introdotta in PrusaSlicer 2.3.0 ) si aprirà chiedendo se la modifica del profilo deve essere salvata (non nel 3MF, ma nel profilo ).

Spostamento dell’oggetto sotto il piano di stampa #1513

Stiamo consentendo di spostare un oggetto sotto il piano di stampa per stampare solo la parte dell’oggetto sopra il piano di stampa. Probabilmente questo era già fattibile con lo strumento “Taglia”, ma il nuovo modo è molto più semplice da usare e molto utile, ad esempio se si ha solo bisogno di appiattire il fondo di un oggetto irregolare per essere stampabile senza una zattera. Non permettiamo che l’oggetto venga sollevato sopra il piano di stampa: gli oggetti sopraelevati non sono stampabili senza una zattera e supporti. Se un oggetto non è piatto, l’utente deve abilitare la zattera per l’oggetto.

Un oggetto si trova sul piano di stampa o sotto il piano di stampa. Se un oggetto si trova sul piano di stampa, il software si comporta come prima: Dopo la rotazione e il ridimensionamento, la posizione Z dell’oggetto viene regolata per toccare il piano di stampa. D’altra parte, se un oggetto è parzialmente al di sotto del piano di stampa, il ridimensionamento e la rotazione non modificano la posizione Z dell’oggetto finché l’oggetto non è elevato al di sopra del piano di stampa. Se un oggetto viene sollevato sopra il piano di stampa, viene nuovamente abbassato per toccare il piano di stampa. C’è anche un nuovo pulsante “Drop to bed” nel pannello di manipolazione degli oggetti per riportare l’oggetto sul piano di stampa, tuttavia la stessa azione può essere eseguita semplicemente sollevando l’oggetto sopra il piano di stampa con il gizmo di spostamento e lasciandolo cadere torna al piano di stampa.

Se l’oggetto è parzialmente al di sotto del piano di stampa, viene disegnato un contorno bianco lungo l’intersezione oggetto – piano di stampa per indicare dove verrà ritagliato l’oggetto. Quando si manipola l’oggetto con aggeggi di spostamento / rotazione / scala o quando si passa sopra l’oggetto con il cursore del mouse, il contorno di intersezione bianco viene disegnato non ritagliato dall’oggetto per facilitare l’appiattimento di un fondo irregolare di un oggetto.

Durante la verniciatura del gizmo, la parte sotto il piano di stampa viene ritagliata e la pittura sul piano di ritaglio del piano di stampa non è consentita.

Lo spostamento di oggetti sotto il piano di stampa non è consentito in modalità SLA per ora in quanto renderebbe confuso il posizionamento dei supporti SLA. Pertanto, quando si passa da una stampante FDM a una stampante SLA, tutti gli oggetti sotto il piano di stampa vengono sollevati per toccare il piano di stampa.

Stampa automatica a colori per insegne

Dopo aver affettato un oggetto segno, viene mostrata una nuova notifica nell’anteprima del codice G che informa che l’oggetto sembra un segno e che si potrebbe voler utilizzare la funzione Stampa a colori per cambiare manualmente il filamento. Se si è d’accordo con il suggerimento cliccando sul collegamento ipertestuale di notifica, gli eventi di cambio colore vengono inseriti nella barra di scorrimento verticale.

auto_cambia_colore

Questa funzione è stata proposta da @richrap , grazie per il suggerimento.

Galleria delle forme #6703

Abbiamo implementato una Shape Gallery che offre sia forme di sistema distribuite con l’installazione di PrusaSlicer che forme utente installate nella directory di configurazione dell’utente. La Galleria delle forme potrebbe essere utilizzata per inserire una forma sul piatto, come parte aggiuntiva di un oggetto o come modificatore in modo simile a come una forma incorporata (cubo, cilindro, sfera) è stata inserita dai precedenti PrusaSlicers. La Shape Gallery potrebbe essere utilizzata ad esempio per imprimere un codice di riciclaggio sul fondo di un oggetto #4349, per caricare i bordi di Topolino per aumentare i bordi, ecc. I file STL e OBJ possono essere caricati tramite il pulsante “Aggiungi” o trascinandoli nella finestra Galleria. Viene generata automaticamente una miniatura per una forma utente, che viene salvata come file immagine PNG, tuttavia l’utente potrebbe voler sostituire l’immagine miniatura generata con la propria.

La Galleria delle forme non è disponibile in modalità Semplice.

Modalità scura di Windows #4493

Sulla base della richiesta popolare, abbiamo implementato la Dark Mode per Windows e abbiamo anche corretto la modalità High Contrast #3038 .

Mentre PrusaSlicer supporta già da tempo la modalità oscura su OSX e Linux, la modalità oscura su Windows era quella del cestino. L’interfaccia utente di PrusaSlicer è implementata utilizzando una libreria multipiattaforma wxWidgets , che avvolge i controlli nativi forniti dalla piattaforma. Su Windows, i wxWidgets avvolgono i vecchi controlli Win32, per i quali non esiste un supporto ufficiale per la modalità oscura fornito da Microsoft dall’introduzione della modalità oscura in Windows 10 nell’autunno 2018. Sfortunatamente Microsoft ha appena implementato un’API non documentata per i controlli utilizzati da Windows Explorer per passare alla modalità oscura. Se un controllo Win32 non viene utilizzato dalla finestra principale di Esplora risorse, non è in modalità oscura e non lo sarà mai, e l’API per quei controlli supportati non è ufficiale, quindi potrebbe essere modificata senza preavviso.

Abbiamo fatto del nostro meglio utilizzando l’API Dark Mode non documentata e lo skin dei controlli Win32. Abbiamo anche implementato le nostre sostituzioni per alcuni controlli Win32, che non erano personalizzabili, ad esempio il notebook a schede che usiamo per passare tra i profili Plater / Print / Filament / Printer (questo fissa la velocità di commutazione delle schede sui display 4k #6309 ). Tuttavia, alcuni dei controlli non hanno lo skin corretto, ad esempio le barre di scorrimento, la barra di stato o i pulsanti di controllo della rotazione, quindi PrusaSlicer potrebbe non sembrare abbastanza lucido in Dark Mode. Pertanto per ora abbiamo deciso di non impostare PrusaSlicer in modalità Dark seguendo le impostazioni di sistema di Windows, ma stiamo permettendo all’utente di selezionare la modalità scura dalle Preferenze utilizzando la casella di controllo “Usa modalità colore scuro (sperimentale)”.

Siamo stati ispirati dallo sforzo di Notepad ++ , che ha rilasciato la sua versione in modalità oscura solo di recente. Stiamo utilizzando il codice sorgente preso in prestito da Notepad++ interfacciandolo con l’API Dark Mode inedita, che si basa su questo progetto . Per quanto ne sappiamo, Notepad++ è l’unica applicazione open source Win32 che implementa la modalità oscura in misura ragionevole.

In alternativa al controllo “taccuino a schede” per passare tra i profili Plater / Stampa / Filamento / Stampante, ora consentiamo di inserire queste schede nel menu dell’applicazione, che potrebbe essere il benvenuto sugli schermi di piccoli laptop.

windows_dark_mode_image

Notifiche “Lo sapevi” alias “Suggerimento del giorno”

PrusaSlicer diventa ogni giorno più potente offrendo molte caratteristiche uniche che non si trovano in altre affettatrici. Per semplificare lo slicing quotidiano, molte funzionalità sono accessibili tramite tasti di scelta rapida e modificatori da tastiera (Ctrl / Alt + tasto del mouse). Presentiamo di recente i suggerimenti “Lo sapevi” all’interno di una notifica, spesso fornendo un collegamento ipertestuale per evidenziare un elemento dell’interfaccia utente (pulsante della barra degli strumenti, parametro di configurazione) o per aprire una pagina di aiuto nel browser web. I suggerimenti possono essere disabilitati nelle preferenze, tuttavia riteniamo che li troverai utili.

did_you_know_image

Avanzamento caricamento

Molti dei nostri utenti gestiscono una fattoria di stampa piccola o non così piccola, quindi possono utilizzare una singola sessione PrusaSlicer per suddividere e caricare i codici G su più stampanti 3D in successione. Per supportare meglio questo flusso di lavoro, abbiamo implementato i seguenti miglioramenti:

  • La finestra di dialogo “Coda di caricamento dell’host di stampa” esistente supporta l’ordinamento per colonne ed è stata aggiunta una colonna di dimensioni del file.
  • Le dimensioni e la posizione della finestra di dialogo “Coda di caricamento dell’host di stampa” sono nuovamente persistenti.
  • Viene visualizzata una notifica nella vista 3D per ogni attività di caricamento avviata che mostra l’avanzamento del caricamento. Pertanto, nella maggior parte dei casi, non sarà affatto necessario aprire la vecchia finestra di dialogo “Coda di caricamento dell’host di stampa”.

upload_progress_image

Semplificazione della rete

A volte il modello importato in PrusaSlicer è eccessivamente dettagliato, rallentando la velocità di interazione dell’utente, affettando e producendo file di progetto (3MF/AMF) di dimensioni eccessive. Forniamo di recente uno strumento di semplificazione del modello basato sull’algoritmo Quadric Edge Collapse , quindi la nostra implementazione produce risultati simili alla semplificazione del modello Microsoft 3D Builder o allo strumento di semplificazione MeshLab Quadric Edge Collapse. Il tasso di semplificazione è controllato o dal livello di dettaglio richiesto (che utilizza internamente stime dell’errore geometrico massimo rispetto al modello originale) o dalla frazione di triangoli da rimuovere.

È possibile utilizzare un tasso di semplificazione molto elevato per ottenere un effetto “Low Poly”.

upload_progress_image

Altri miglioramenti dell’interfaccia utente

  • La finestra di dialogo di conferma su “Elimina tutto” è stata rimossa, ora funziona come se gli oggetti fossero stati rimossi uno per uno. La finestra di dialogo di conferma aveva il suo scopo fino all’implementazione di Annulla/Ripristina #3886 .
  • Oltre a ricaricare un oggetto esistente o una geometria del volume dal disco, PrusaSlicer consente di sostituire la geometria con un file #3856 diverso .
  • PrusaSlicer visualizza nuovamente i separatori decimali in base alle impostazioni locali dell’utente, mentre prima era visualizzato un punto.
  • La funzione “Dividi in oggetti” supporta di recente la suddivisione di un oggetto multi-volume in più oggetti, mentre questa funzione era utilizzata in precedenza per dividere solo un singolo volume in più oggetti. Se l’oggetto ha più volumi, i relativi volumi vengono assegnati ciascuno al proprio oggetto. Per prima cosa, dopo che l’oggetto ha un solo volume, “Dividi in oggetti” dividerà un volume in più oggetti disconnessi, se possibile.
  • Aggiunto bordo al colore del filamento nella casella combinata del pannello di destra per migliorare la visibilità dei filamenti di luce. #5914 , grazie @scottmudge .
  • Aggiunta la possibilità di confrontare i profili di configurazione ( Window->Compare presets4cdcfe6
  • Aggiunti i tasti di scelta rapida “1-9” per assegnare un numero di estrusore a un oggetto o un volume con il focus della tastiera nell’elenco degli oggetti, “0” assegna l’estrusore “predefinito”. Allo stesso modo, un nuovo tasto di scelta rapida “p” attiva o disattiva il flag “stampabile” degli oggetti o dei volumi selezionati. #6216 .
  • La voce di menu “Stampabile” è ora disponibile anche per la selezione di più oggetti 3a53606 .
  • Specifico per macOS: abilitato il tasto di scelta rapida “Cmd+M” standard della piattaforma per ridurre a icona l’applicazione. Il tasto di scelta rapida “Finestra di dialogo sensibilità set legacy 3DConnexion” è stato modificato in “Cmd+Shift+M” su macOS.
  • Lo sfondo dei campi XYZ nel “Pannello di manipolazione degli oggetti” può essere nuovamente colorato con il colore degli assi gizmo (rosso, verde, blu). Configurabile in Preferenze da “Usa i colori per i valori degli assi nel pannello Manipolazione”, disabilitato per impostazione predefinita #4931 .
  • Una volta che l’utente dipinge gli esecutori di supporto e i supporti non sono abilitati, viene mostrata una nuova notifica che suggerisce di abilitare i supporti facendo clic su un collegamento ipertestuale #5307 .
  • Risolto problema minore di allineamento del testo nella barra di scorrimento verticale del visualizzatore G-code #6182 .
  • Specifico per più materiali: la finestra di dialogo “Cambia colore” consente di generare nuove sequenze casuali di scambio dell’estrusore, producendo un effetto arcobaleno #1866 .
  • Le impostazioni dei colori che indicano la difficoltà delle opzioni di configurazione (Semplice/Avanzato/Esperto) sono state spostate in Preferenze per essere facili da scoprire #5489 .
  • Con i supporti per pittura gizmo inattivi, non è chiaro se un oggetto abbia dei supporti dipinti. Lo stesso vale per le cuciture verniciate, la segmentazione verniciata multimateriale o le caratteristiche di altezza variabile dello strato. Se uno di questi strumenti è stato utilizzato su un oggetto, il fatto viene indicato nuovamente nell’elenco degli oggetti da una riga aggiuntiva (facendo clic su questa riga si apre la modifica della proprietà rispettata, è possibile utilizzare il tasto Canc per rimuoverla). Allo stesso modo viene indicato nell’elenco degli oggetti se un oggetto è parzialmente al di sotto del piano di stampa (questa è una nuova funzionalità in PrusaSlicer 2.4.0-alpha1). Inoltre, apriamo una notifica dopo aver caricato un progetto che indica quali di queste funzionalità sono state applicate ad almeno un singolo oggetto.
  • Texture MK2 e MK3 aggiornate 57a73c5
  • Specifico per Linux: PrusaSlicer definisce le icone per molte voci di menu, tuttavia molti desktop Linux sono configurati in modo che nessuna icona di menu venga mostrata dalle applicazioni basate su GTK2/GTK3, molto probabilmente perché queste icone sono spesso enormi. PrusaSlicer forza di recente GTK2/3 a visualizzare sempre le sue piccole icone nei suoi menu ignorando le impostazioni predefinite del desktop.

Altre nuove funzionalità e miglioramenti

  • Zippare 3MF ora utilizza il formato ZIP64, quindi i nostri 3MF non sono più limitati a 4 GB di file non compresso e alla dimensione totale dell’archivio. Poiché l’implementazione di Microsoft 3MF non supporta ZIP64, utilizziamo l’estensione ZIP64 solo se necessario #6193 .
  • Specifico per Windows, carica su host di stampa: se il caricamento è protetto utilizzando un certificato SSL autofirmato, il sistema Windows spesso rifiuta il certificato autofirmato perché non può verificarne la revoca. PrusaSlicer consente di nuovo di sopprimere il controllo di revoca #1781 .
  • Specifico per Linux, si applica anche a Linux su Chrome OS: il supporto per l’integrazione desktop (compilato in modo condizionale) consente di installare i file di integrazione desktop (PrusaSlicer.desktop, PrusaSlicer-gcodeviewer.desktop e le icone) nel desktop dell’utente. L’integrazione desktop è offerta dalla procedura guidata di installazione e l’integrazione desktop può anche essere installata/disinstallata manualmente dal menu Configurazione. L’integrazione desktop manuale è abbastanza utile se si sperimentano più AppImage di diverse versioni di PrusaSlicer, l’ultima per cui viene eseguita l’installazione desktop vince #1431 .

Bug corretti

Risolti bug dell’interfaccia utente

  • Specifico per OSX: Risolto il problema con la gestione dei controlli di rotazione nella finestra di dialogo Eliminazione dei volumi, i valori del controllo di rotazione a volte non venivano accettati #6056 .
  • Specifico multi-materiale: risolto il crash dopo la diminuzione del numero di estrusori della stampante e l’accesso al menu a comparsa dell’oggetto #6094 .
  • Risolta l’incoerenza durante la copia di un oggetto, che è contrassegnato come non da stampare #5619 .
  • Specifico per Linux/GTK: Risolti gli asserzioni emesse dalle combo box preimpostate Platter #5510 .
  • Specifico per Linux/GTK: Risolto il problema con l’asserzione nella procedura guidata di installazione, nella pagina di selezione del filamento #5152 .
  • Specifico per più materiali: dopo aver eliminato tutto tranne l’ultimo volume da un oggetto, l’estrusore predefinito dell’oggetto viene nuovamente inizializzato con l’estrusore dell’ultimo volume rimanente. Questo non è stato fatto prima che l’oggetto venisse tagliato con l’estrusore del volume, mentre nell’elenco degli oggetti veniva mostrato solo il colore dell’estrusore dell’oggetto. 03dee86
  • Specifico per Linux/GTK: Risolto il problema con la casella combinata “visualizza” nella parte inferiore dello schermo, che centrava l’elemento attivo attorno al cursore del mouse, spingendo così spesso la maggior parte degli elementi della casella combinata fuori dallo schermo. Questo è un comportamento sfortunato del controllo GTK Choice, che ora abbiamo sostituito con un controllo Combo Box #6110 .
  • Risolto il problema della procedura guidata di installazione appena introdotto in wxWidgets 3.1.4, in cui i controlli di rotazione per definire i diametri dell’ugello e del filamento non accettavano le virgole. Risolto sostituendo questi controlli di rotazione con input di testo.
  • Specifico per Linux / GTK: Risolto il problema con l’apertura sorprendente di un campo di modifica quando si premeva un tasto lettera con l’elenco degli oggetti focalizzato b87c03f .
  • Risolto un raro arresto anomalo durante l’eliminazione dell’ultimo oggetto da plater 0c7095d .
  • Specifico per Windows: risolto il problema di messa a fuoco dopo aver chiuso una finestra di messaggio di “errore di convalida dei parametri” e aver riportato lo stato attivo alla pagina dei parametri 3c37aed .
  • Specifico per Linux / GTK3: Risolto il problema con l’altezza insufficiente delle caselle combinate sul pannello laterale del platore #5163 #5505 .
  • Risolto il problema con la copia/incolla di più oggetti con diversi attributi assegnati (ad esempio con diverso tasso di riempimento) che portava all’errore “Selezione non supportata” #5517 .
  • Logica di convalida della larghezza di estrusione fissa nel caso in cui la larghezza di estrusione fosse specificata rispetto a. altezza dello strato #4631 .
  • Aggiornamenti corretti delle caselle combinate: il tasto Invio non ha fatto sì che la casella combinata accettasse un nuovo valore, quindi il back-end di slicing non veniva aggiornato #6692 .
  • Risolto il problema con l’arresto anomalo durante il tentativo di aprire un menu a comparsa di un modificatore mentre i parametri di un altro modificatore erano modificabili nel pannello laterale. Questa era una regressione da PrusaSlicer 2.3.0 #6782 .
  • Con le impostazioni configurate come mobili nella propria finestra non modale e con la finestra non modale ridotta a icona, la selezione di una pagina delle impostazioni con i tasti di scelta rapida Ctrl-2/3/4 o dal menu PrusaSlicer non ha ripristinato la finestra ridotta a icona. Questo è ora risolto #6548 .
  • L’installazione/disinstallazione di filamenti o materiali SLA utilizzando la configurazione guidata non ha funzionato in modo affidabile #6436 .
  • Risolto un problema tecnico, per cui la modifica del tipo di riempimento solido superiore e della velocità era disabilitata in modalità vaso #4241 .

Preset

  • Risolto un problema con PrusaSlicer, in cui all’utente era consentito salvare il proprio nome profilo sotto il nome di un alias profilo di sistema (noto anche come nome simbolico). Ad esempio, l’utente è stato in grado di salvare il profilo “0.2mm QUALITY @MK3 ” come profilo utente “0.2mm QUALITY”, che è il nome simbolico del profilo di sistema #5638 .
  • Risolto un crash durante l’importazione di un pacchetto di configurazione come file di configurazione. Questo è stato interrotto per le configurazioni multi-materiale con diversi profili di filamento selezionati. #5825
  • Risolto il problema con il ricaricamento da disco dopo che un progetto è stato caricato da un 3MF. Ricarica da disco ha funzionato per un nuovo progetto, ma per un progetto caricato da 3MF la funzione “ricarica da disco” non ha ricaricato una geometria nella stessa posizione e scala #5541 .
  • Ricarica da disco non era disponibile per le geometrie importate da un formato 3MF o AMF (ad esempio se il 3MF o AMF è stato esportato da SolidWorks) #5071 .
  • Risolto il problema con la memorizzazione del messaggio G-code personalizzato “pausa stampa” in un file di progetto. Il messaggio “pausa stampa” è stato correttamente emesso in G-code per un nuovo progetto, ma non dopo che il progetto è stato caricato da 3MF #5888 .
  • Risolto il problema con l’attivazione di profili di materiale “predefiniti” specifici per stampante/filamento/stampa sla/sla dopo che la prima stampante in assoluto è stata installata dalla configurazione guidata.
  • Risolto il problema con la memorizzazione/caricamento dell’elenco dei profili stampante associati a un profilo stampante fisica. I nomi dei profili della stampante contenenti punti e virgola o spazi iniziali/finali non sono stati gestiti correttamente. L’elenco dei profili della stampante viene salvato utilizzando una vecchia chiave di configurazione “preset_name” il vecchio modo inaffidabile per la compatibilità con PrusaSlicer 2.3.3. Inoltre l’elenco dei profili viene archiviato in modo robusto utilizzando una nuova chiave “preset_names” #5503 .
  • Implementata conversione automatica da metri a millimetri al caricamento di oggetti estremamente piccoli, che molto probabilmente venivano esportati in metri. Inoltre sono state aggiunte nuove voci di menu per convertire manualmente da/a metri #4521 .
  • Risolto il problema con il caricamento dei file di progetto che fanno riferimento ai profili di sistema, che non sono installati sulla macchina di destinazione. In tal caso il vecchio PrusaSlicer ha attivato alcuni profili casuali, mentre il nuovo PrusaSlicer installa temporaneamente i profili mancanti fino a quando PrusaSlicer non viene chiuso e l’utente viene informato con una notifica.

Altre correzioni di bug

  • Specifico per Windows: corretto “Fix by Netfabb” per i volumi ridimensionati, che sono stati ridimensionati due volte dopo essere stati corretti.
  • Specifico per Windows: ASUS e MSI installano applicazioni, che utilizzano le librerie di Nahimic . Queste librerie Nahimic vengono quindi iniettate nel nostro PrusaSlicer all’avvio e portano a un arresto anomalo di PrusaSlicer all’avvio su alcune configurazioni a doppio schermo. Non siamo stati in grado di risolvere il problema in quanto non siamo stati in grado di mettere le mani su un sistema del genere, quindi abbiamo implementato il rilevamento delle DLL della lista nera iniettate in PrusaSlicer, le segnaliamo e consigliamo di disabilitare tali servizi. Anche le DLL della lista nera iniettate in PrusaSlicer vengono mostrate dalla finestra di dialogo Informazioni di sistema #2142 #2522 #3689 #4793 #5091 #5573 .
  • Specifico per Linux: Risolto il problema con il richiamo di PrusaSlicer facendo riferimento al binario prusa-slicer con una variabile $PATH o un collegamento simbolico #5542 #5751 .
  • Affettatura della riga di comando fissa senza tecnologia di stampa (FDM o SLA) specificata. L’affettatrice dovrebbe affettare in modalità FDM quando non viene fornita la tecnologia printer_technology. Questo è stato interrotto tra 2.2.0 e 2.3.0 (1bffc2b), dove 2.3.0 è stato suddiviso in modalità SLA per impostazione predefinita, ma ha salvato l’output come .gcode #5029 .
  • Risolto il crash nella disposizione quando i poligoni da organizzare contenevano punti duplicati #5749 .
  • Risolto il problema con l’analisi del parametro della riga di comando –scale-to-fit, rielaborato l’algoritmo di ridimensionamento e posizionando gli oggetti sul letto, che sono stati interrotti da PrusaSlicer 2.0. Aggiunto anche un nuovo parametro della riga di comando ‘–ensure-on-bed’, che è ‘true’ per impostazione predefinita: quando un oggetto viene posizionato sul piano di stampa, viene allineato in Z per sedersi sul piano di stampa, che corrisponde a cosa farebbe PrusaSlicer quando un oggetto viene importato nell’interfaccia utente #5772 , #6788 .
  • Risolto il problema con il crash durante la divisione dei modelli dalla riga di comando utilizzando il parametro della riga di comando ‘–split’ e le mesh vuote venivano create durante la divisione #5979 #5991 grazie @combolek .
  • L’inizializzazione delle classi derivate da PrintConfig non era thread-safe # 6475 , grazie a @supermerill per aver sottolineato questo problema.
  • Risolto il deadlock durante l’annullamento dello slicing mentre gcode stava creando le miniature # 6476 , grazie a @supermerill per aver sottolineato il problema.

Nuovi profili di stampanti di terze parti

  • Aggiunti profili stampante gCreate gMax, grazie @gordo3di

Localizzazione

  • I dizionari per CZ, DE, ES, FR, IT e PL sono stati aggiornati da Prusa Research. I collaboratori sono i benvenuti, si prega di controllare la guida alla localizzazione
  • Aggiornamento localizzazione coreana #6314 grazie @ulsanether .

Architettura, infrastruttura

  • Abbiamo rimosso la dipendenza da libglut, che è un piccolo passo avanti per deprecare l’OpenGL legacy.
  • Abbiamo aggiornato ImGUI alla versione 1.83 per supportare il separatore decimale localizzato (punto contro virgola).
  • Specifico per Windows: l’abilitazione di /utf-8 su MSVC dovrebbe correggere gli errori di compilazione su Windows cinese #5583 .
  • Specifico per Windows: Visual Studio supporta di recente l’eliminazione degli indirizzi. PrusaSlicer supporta di recente le build ASAN su Windows utilizzando lo switch -DSLIC3R_ASAN=on CMake allo stesso modo delle piattaforme POSIX.
  • Abbiamo corretto un numero enorme di avvisi del compilatore. Ci stiamo adoperando per mantenere le nostre build senza avvisi su tutte le principali piattaforme.
  • Specifico per OSX: Abbiamo aumentato la versione OSX minima richiesta da 10.9 a 10.10 a causa di un aggiornamento di wxWidgets, che non compila su OSX 10.9.
  • CMakeLists è stato aggiornato per richiedere MINIMUM_BOOST_VERSION 1.66.0 a causa della dipendenza Base64 #3375 #5508 grazie @pmjdebruijn .
  • Quando si compilano wxWidgets come dipendenza statica, il supporto wxMediaCtrl non viene più compilato in quanto non ne abbiamo bisogno e wxMediaCtrl richiede dipendenze di compilazione impreviste su Linux #5815 #6160 .
  • Specifico per Linux / GTK: corretta compilazione contro wxWidgets 3.0 #5752 grazie @sebastianha .
  • Versione boost aggiornata da 1.70.0 a 1.75.0 a causa di un problema con il più recente Xcode / clang che segnala erroneamente che supporta __cpp_lib_uncaught_exceptionsmentre non lo fa se si rivolge a piattaforme precedenti. Questo problema è stato risolto prima in boost 1.74.0.
  • Durante la creazione di dipendenze statiche, lo script di dipendenza utilizzato per scaricare sempre le fonti da Internet. Poiché il sistema di compilazione Linux/Snap vieta la connessione a Internet, abbiamo esteso il sistema di compilazione per creare dipendenze senza connessione a Internet specificando un DEP_DOWNLOAD_DIR che punta ai pacchetti di codice sorgente richiesti già scaricati.
  • Aggiornato il framework Catch2 dalla v2.13.3 alla v2.13.6, corregge la compilazione su Fedora Rawhide #6518 grazie @ausil .
  • Risolto il problema con l’ URL della dipendenza del boost poiché la durata dell’host originale è terminata #6349 grazie @krisrok .
  • Alcuni componenti di Thread Building Blocks (atomics, mutex) sono stati recentemente deprecati con gli equivalenti della libreria standard #6590 grazie @zavorka
  • Aggiungi un semplice script di build da riga di comando di Windows ( # 6674 ) grazie @jshuh
  • Specifico per Linux: dirs di installazione FHS fisse #5930 grazie @dimitry-ishenko .

Documentazione

Change-log Source: Prusa Github Wiki