Salta al contenuto principale
OpenSCAD SVG Extruder
  1. Blogs/

OpenSCAD SVG Extruder

·350 parole·2 minuti
Computer Grafica Stampa 3D OpenSCAD CAD
Indice dei contenuti

Introduzione
#

Lo script qui fornito, utilizzabile con il modellatore 3D OpenSCAD, consente di estrudere in altezza un qualsiasi disegno vettoriale in formato SVG.

Lo script può trovare particolare utilità nella Stampa 3D, qualora si debba ottenere rapidamente un solido STL a partire da un disegno vettoriale, con l’ulteriore vantaggio di poter applicare una pendenza e una torsione al profilo di estrusione.


Utilizzo
#

Posizionare un file SVG denominato draw.svg all’interno della cartella che contiene lo script. Aprire lo script con OpenSCAD, variare i parametri a piacimento e avviare la generazione del modello 3D.

I parametri di estrusione sono i seguenti:

Parametro Descrizione
Base width La larghezza (mm) della base del modello risultante.
Extrusion height L’altezza di estrusione
Twist La torsione (in gradi) applicata al modello.
Slope La pendenza (in gradi) applicata al profilo di estrusione.
Layer height L’altezza di ogni passo di estrusione (ridurre il valore per incrementare la risoluzione della mesh)

Il codice
#

Il codice seguente:

  • è stato verificato come funzionante con la versione 2021.01 di OpenSCAD;
  • è distribuito con licenza Creative Commons CC-BY.
// OPENSCAD SVG EXTRUDER - Ver. 0.1
// This script extrude an SVG of your choiche at a desired height, optionally applying slope and twist to the extrudel model

// Instructions: put an SVG files named "draw.svg" into the same folder that contain this script. Remember to set the desired base width (mm) of the output model. Decrease the "layer height" value to increase mesh resolution.

// Coded by Marco Papi - www.marcopapi.it
// License: CC-BY - https://creativecommons.org/licenses/by/4.0/ 


// VARIABLES
    base_width=100;
    extrusion_height=50;
    twist=-20;
    slope=20;
    layer_height=1;

// COMPUTE VARIABLES
    layers=(extrusion_height/layer_height);
    a_angle=(90-slope);
    b_angle=(180-90-a_angle);
    expansion=extrusion_height*(tan(b_angle));
    scale_factor=((expansion*2) + base_width)/base_width; 

// COMPUTE THE EXTRUSION
    linear_extrude(height = extrusion_height, center = false, scale=scale_factor, twist = twist, slices = layers) {
        resize (newsize=[base_width,0,0], auto=[true,true,false]) {
            import("draw.svg", center = true);
        }
    }    

A supporto il codice SVG del disegno alla base del modello 3D ritratto nell’immagine di apertura:

<?xml version="1.0" encoding="utf-8"?>
<!-- Created by Marco Papi, www.marcopapi.it  -->
<svg version="1.1" id="Livello_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 283.5 257.6" style="enable-background:new 0 0 283.5 257.6;" xml:space="preserve">
<path id="XMLID_6_" d="M190,0H93.4c-16.1,0-31,8.6-39.1,22.6L6,106.2c-8.1,14-8.1,31.2,0,45.1L54.4,235c8.1,14,23,22.6,39.1,22.6
	H190c16.1,0,31-8.6,39.1-22.6l48.3-83.7c8.1-14,8.1-31.2,0-45.1l-48.3-83.7C221.1,8.6,206.2,0,190,0z M141.7,209.4
	c-44.5,0-80.6-36.1-80.6-80.6s36.1-80.6,80.6-80.6s80.6,36.1,80.6,80.6S186.3,209.4,141.7,209.4z"/>
</svg>
Marco Papi
Autore
Marco Papi