• Passa al contenuto principale
  • Skip to secondary menu
  • Passa alla barra laterale primaria
logo openoikos

openoikos

Soluzioni CAD low cost

banner nanocad italia
  • Home
  • Chi sono e di cosa parlo
  • Blog
    • NANOCAD free
    • NANOCAD
    • GIS
    • Grafica
    • Altri software
    • Programmazione
    • Android
    • Hardware
    • Web

Blog

Nelle spire del Python (lezione 4): come prendere decisioni

Lascia un commento

python or and

logo python Siamo arrivati al quarto incontro. Sarà il caso di vedere come prendere decisioni.
Per decidere possiamo usare l’istruzione
if condizione:
    codice assortito
altro codice a scelta
ovviamente se la condizione e’ verificata “codice assortito” verrà eseguito e poi verrà eseguito “altro codice a scelta”, altrimenti verrà eseguito solamente “altro codice a scelta”

Possiamo anche far fare qualcosa se la condizione non dovesse essere verificata, con l’istruzione
if condizione:
    codice assortito
else:
    codice alternativo
altro codice a scelta
“codice alternativo” verrà eseguito in alternativa a “codice assortito”. Al contrario del caso precedente uno dei due viene eseguito in ogni caso prima eseguire “altro codice a scelta”.

Abbiamo anche la possibilità di controllare differenti condizioni.
if condizione1:
    codice condizione1
elif condizione2:
    codice condizione2
altro codice a scelta
Se si verifica la condizione1 viene eseguito “codice condizione1”, se si verifica la condizione1 viene eseguito “codice condizione2”, in ogni caso viene eseguito “altro codice a scelta”

Ovviamente possiamo avere entrambe le cose:
if condizione1:
    codice condizione1
elif condizione2:
    codice condizione2
else:
    codice alternativo
altro codice a scelta

Vediamo quindi le condizioni con qualche esempio.
Un esempio è
a = input(“Inserire un valore: “)
if a < 0:
    print “Il valore inserito è negativo”
elif a > 0 and a <= 10:
    print “Il valore inserito e’ compreso tra 1 e 10”
elif a == 0:
    print “Il valore inserito è zero”
else:
    print “il valore inserito è maggiore di 10”
print “Abbiamo finito”

if-elif-else
Volutamente ho inserito una clausola elif che esegue due test
elif a > 0 and a <= 10:

In pratica se il valore inserito è maggiore di 0 e inferiore a 10 la condizione è verificata.

Abbiamo così scoperto anche il costrutto and che permette di legare assieme due condizioni.
Inoltre abbiamo una serie di operatori di comparazione
== uguale
< minore di
> maggiore di
<= minore o uguale di
>= maggiore o uguale di
!= diverso da

Oltre all’operatore and di congiunzione, abbiamo anche quello alternativo or che si usa come segue:
a = input(“Inserire un numero: “)
if a < 0 or a > 0:
print “A non e’ uguale a zero”
else:
print “A e’ uguale a zero”
python if

Si possono combinare anche entrambi MA si deve stare attenti alle precedenze. Per evitare sorprese è bene usare le parentesi per avere la certezza che otterremo quel che vogliamo.
a = input(“Inserire un numero”)
if (a > 0 or a < 0) and a != 100:
print “A differente da zero e da cento”
python or and

Abbiamo anche l’operatore di negazione not.
a = None
if not a:
print “1”
else:
print “2”
python if not
stamperà 1. Se invece scriviamo

a = 1
if not a:
print “1”
else:
print “2”
python if not
stamperà 2.

Arrivederci alla prossima settimana con i cicli.

Altre letture utili:
Programmare con Python. Guida completa
Python
Programmare in Python

Imparare il 3D con SketchUp: storia e concetti basilari

1 commento

sketchup logo

Con questo articolo, che riprende quanto già pubblicato su CADZINE, magazine per la divulgazione del CAD, Salvio Giglio diventa un autore anche di questo blog.
Lo ringraziamo per questo e per tutto ciò che farà.

SketchUp, per chi non lo conosce ancora, è un potente programma di grafica CAD per la modellazione tridimensionale presente sul mercato sia nella versionsketchup logoe Free che in quella Pro.
E’ un programma che funziona sull’applicazione della grafica vettoriale applicata al CAD per cui è di estrema leggerezza anche se si modellano oggetti molto complessi.
Partiamo subito dal nome del programma e traduciamo il primo termine (sketch) che incontriamo.
Esso viene dall’inglese e può essere tradotto sia come sostantivo (abbozzo, bozzetto, scenetta, schizzo) che come verbo (abbozzare, schizzare, tratteggiare).
Il secondo termine (up) è abbastanza conosciuto anche da noi e significa “alzare”, “in alto”, “sopra”…
In definitiva, si intuisce che con la parola SketchUp gli autori volevano intendere “tirare su un bozzetto”….

schell e esch
Brad Schell e Joe Esch

BREVE NOTA STORICA

La nascita.
I padri di SketchUp sono due statunitensi: l’ingegnere civile Brad Schell e l’informatico Joe Esch che riescono realizzare un modellatore 3D molto leggero, potente e con un’interfaccia grafica essenziale.

Nel 1999 fondano una start up, la @Last Software, per lo sviluppo di programmi, in Colorado a Boulder tra cui il progetto SketchUp e altri software per l’ingegneria.

google sketchupIl passaggio a Google e le relative versioni.

Google ha acquisito @ Last Software il 14 marzo 2006, dopo che la software house pubblicò un plugin di SketchUp per Google Earth.
Il 9 gennaio 2007, SketchUp 6 è rilasciato, con nuovi sets di strumenti (come, ad esempio, il comando di estrusione su percorsi misti “Follow Me” che consente la modellazione di forme curve e carenature) nonché una versione beta di LayOut.
LayOut comprende strumenti vettoriali 2D che lo rendono simile ad un software CAD tradizionale.
Le funzionalità per l’impaginazione e la presentazione di progetti pensate per LayOut sono destinate ai professionisti e facilitano la preparazione di presentazioni senza dover passare per un programma di terze parti.
Il 17 novembre 2008 è rilasciato SketchUp 7, con ulteriori miglioramenti e l’integrazione di un browser componenti in grado di caricare, oltre a quelli forniti di default con l’installazione, anche quelli creati da altri utenti di SketchUp e presenti nella Google 3D Warehouse.
In questa versione è presente anche LayOut 2, e migliorano le prestazioni dei componenti dinamici e le prestazioni dell’API per il linguaggio Ruby, che consente agli utenti più esperti di produrre delle funzionalità aggiuntive per SketchUp (un po’ come accade per le macro create in Word con VBA).
Il 1° settembre 2010 è rilasciato Sket-chUp 8.
La principale novità è la geolocalizzazione di un modello attraverso Google Maps e i miglioramenti di resa fotografica ad esso associati.
In questo modo Google Earth è ancora più integrato con SketchUp.

Il passaggio a Trimble.

Sul finire del 2011 SketchUp viene acquistato dalla Trimble, una multinazionale che si occupa di tantissime attività (dal software ingegneristico alla ricerca petrolifera).
Il 2 maggio del 2013 viene rilasciata la versione MAKE, completamente riveduta e corretta molto stabile e potentemente connessa al web sia per l’interscambio di modelli con la galleria 3D che con Google Earth.
La versione MAKE 2014 viene distribuita agli inizi di gennaio 2014 e include anche un nuovo set per il disegno degli archi molto pratico e la finestra dedicata agli stili si arricchisce di ulteriori template.
Il software ha ora acquisito una stabilità quasi totale supportando modellazioni di oggetti molto complessi formati da centinaia di gruppi e componenti con un impegno delle risorse hardware molto contenuto.

CONCETTI BASILARI PER IL DISEGNO SU SKETCHUP

Fasi preliminari per lo sviluppo di un disegno.
Qualunque sia il campo di competenza dell’utente, è consigliabile organizzare il proprio lavoro in una sequenza di fasi che eviteranno operazioni noiose e ripetitive, errori, perdite di tempo e altri inconvenienti, lasciando così pieno spazio all’ideazione e alla progettualità.
1) Preferenze
Prima di mettersi a disegnare è necessario personalizzare il programma per le proprie esigenze.
Due finestre di dialogo consentono agevolmente di preimpostare unità di misura, fondali, colori, ecc.
layer sketchup2) Layers e gruppi.
Analogamente a quanto accade nel disegno tecnico tradizionale, è possibile suddividere la rappresentazione di un oggetto complesso in più tavole sovrapponibili che, nei programmi di grafica, sono definiti layers o livelli.
Ciò permette di distribuire le varie parti da cui tale oggetto è composto su livelli diversi e in gruppi, in modo da alleggerire l’elaborato grafico e il computer sia nella visualizzazione su schermo, sia nella stampa.
Stabilita la gerarchia di rappresentazione, si parte dal primo layer che sarà composto di un certo numero di particolari grafici che, nel loro insieme, fanno parte di una stessa famiglia: i plinti di fondazione di un edificio, le travature che formano lo scheletro di una nave, il basamento di un motore automobilistico, ecc.
Ogni oggetto realizzato con un modellatore tridimensionale è fondamentalmente un insieme di poligoni che conviene, a lavoro finito, bloccare in un gruppo.
Un gruppo può contenerne altri. Ad esempio, nel progetto di un edificio nel layer “basamento”, il gruppo “fondazioni” sarà formato da altri quattro gruppi: “pilastri”, “setti”, “plinti” e “travi”.
Il vantaggio di quest’operazione consiste nel manipolare così un unico oggetto, cosa questa che facilita spostamenti, copie e rintracciabilità dello stesso.
SketchUp permette, come si vedrà tra poco, addirittura l’ampliamento della sua già ricchissima libreria grafica con oggetti – gruppo creati dall’utente e chiamati componenti, da poter utilizzare successivamente in altri disegni.

visual sketchup3) Presentazione del disegno
Di fondamentale importanza è, oltre all’esecuzione del disegno, anche la presentazione di questo.
Nella maggior parte dei casi la disposizione delle viste di un disegno tecnico è regolata da specifiche normative che, puntualmente, sono riportate nelle prime pagine dei manuali di disegno. Altre volte, invece, è l’ambiente di lavoro o di studio a determinare tale disposizione.
Rispetto alle tecniche tradizionali di disegno, il principale vantaggio offerto da SketchUp è la possibilità di poter lavorare direttamente su un oggetto tridimensionale e da questo passare immediatamente alle sue viste bidimensionali: pianta, profilo destro e sinistro, prospetto e retro.
E’ possibile creare una serie di pagine “diapositiva” utilissime nella presentazione di un progetto.
Corredato da fondali, didascalie mobili, personaggi e altri accessori, l’elaborato grafico in queste pagine è visto da angolazioni diverse e, grazie ad un ulteriore funzione di animazione chiamata SlideShow, è possibile addirittura creare l’animazione di una visita guidata.
Quest’ultima può essere esportata in un video come file con estensione “.avi”.
Un’ulteriore modo per animare un elaborato grafico è offerto dalla funzione Spinview o vista rotante: quest’ultima permette di visualizzare una vista rotante, ad angolo variabile, di un oggetto. Con Spinview, però, non è possibile creare filmati.

Altre letture utili:
SketchUp: modellazione 3D e geomodellazione
Perché SketchUp ?: Manuale pratico per realizzare progetti esecutivi con SketchUp 2014
Progettazione virtuale con SketchUp

Nelle spire del Python (lezione 3): giocare con i numeri

Lascia un commento

python numeri

logo pythonBene eccoci al terzo appuntamento con Python.
Dunque, abbiamo visto come stampare a video, cosa siano variabili costanti, come ricevere un input dall’utente, come scrivere delle funzioni e come passare loro dei parametri.
Sebbene ci sia ancora molto lavoro da fare, già qualcosa siamo in grado di farlo.
Ora vediamo come giocare con i numeri.

>>> 10 + 20
30
>>> 10 – 5
5
>>> 10 * 2
20
>>> 10 / 2
5
>>> 11 / 2
5

python numeri

Oops, sembra che qualcosa non abbia funzionato. 11 diviso 2 dovrebbe dare 5.5.
Per farlo dobbiamo dire all’interprete che almeno una delle due cifre è decimale. Proviamo così:
>>> 11.0 / 2
5.5

Possiamo anche farlo in maniera diversa:
>>> float( 11 ) / 2
5.5

Il metodo float (che è integrato nel sistema) è un casting, ovvero facciamo capire al sistema che il valore o la variabile vanno considerati come di un tipo diverso, nel nostro caso come cifra decimale invece che intera.

Per dire possiamo anche fare una cosa del tipo:
>>> float( “11” ) / 2
5.5

Eppure “11” è una stringa, se non ci credete potete scrivere
>>> type(“11”)
<type ‘str’>

Ma se è una stringa come può essere divisa per 2 e tornare per di più un valore decimale? E se scrivessimo
>>> int( “11” ) / 2
5

numeri python

Questa operazione (casting) può essere fatta anche all’opposto, da numero a stringa, ecco un esempio:

>>> type(“11”)
<type ‘str’>
>>> type( 11 )
<type ‘int’>
>>> type( str( 11 ) )
<type ‘str’>

numeri python

Python dove può esegue in automatico il casting, l’esempio della divisione (ma vale anche per le altre operazioni matematiche) ne è la prova: 11.0 è un numero decimale, 2 sarebbe un intero ma viene convertito (casting) in decimale (float) per poter eseguire correttamente l’operazione.
Ovviamente possiamo scrivere anche:
>>> 11 / 2.0
5.5

Se comunque volessimo conoscere il resto della divisione? Semplice
>>> 11 % 2
1
>>> 23 % 3
2
Attenzione, è il residuo, non la parte decimale.

Altri operatori che possiamo usare sono la divisione intera
>>> 13.0 // 2
6.0

Notate che se avessimo scritto invece
>>> 13.0 / 2
6.5

e l’elevamento a potenza
>>> 2 ** 2
4
>>> 2 ** 3
8
>>> 2 ** 4
16
>>> 2 ** 5
32

numeri python

Gli operatori hanno delle precedenze, per l’esattezza abbiamo
**
/,*, %
+,-

Questo comporta che se scriviamo
>>> 15 % 6 * 2 + 3
9

In pratica
>>> 15 % 6
3
>>> 3 * 2
6
>>> 6 + 3
9

Se volessimo invece ottenere che il risultato di 15 % 6 sia moltiplicato per 2 + 3?
>>> 15 % 6 * (2 + 3)
15

Perché diventa
>>> 15 % 6
3
>>> 3 + 2
5
>>> 3 * 5
15

Le parentesi sono importantissime quindi per essere certi dell’ordine di elaborazione dei comandi.

Esistono anche altri operatori, i cosidetti operatori di shift (>> e <<) e di confronto bitwise (&, ^ e |) ma che per ora esulano da quanto ci interessa sapere.

Una considerazione: Python e’ un linguaggio typed, ovvero una variabile una volta assegnata prende il tipo con cui viene assegnata. Per capirci:

>>> a = 1
>>> type(a)
<type ‘int’>
>>> b = 12.2
>>> type(b)
<type ‘float’>
>>> c = True
>>> type(c)
<type ‘bool’>
>>> d = ‘ciao’
>>> type(d)
<type ‘str’>

numeri python

Però se assegniamo alla variabile un differente tipo cosa accade?
La variabile (o meglio l’etichetta che gli abbiamo assegnato) viene collegata ad una nuova locazione di memoria (e quindi ad un differente valore).
Non ci credete? Vediamo:
>>> a = 1
>>> id(a)
34259288
>>> a = ‘ciao’
>>> id(a)
140531248445120

numeri python

Ovviamente i valori che otterrete saranno differenti da quelli che ho mostrato, sono gli indirizzi di memoria dove sono memorizzati i valori.
Ma quello che conta è che al cambiare dell’assegnazione non abbiamo una sovrascrittura ma una riassegnazione del valore.
Altri linguaggi che prevedono che una variabile sia inizializzata ad un certo tipo (intero, virgola mobile, stringa, booleano etc.) poi non permettono di cambiare il tipo.
Ovviamente questo ha i suoi pro e i suoi contro.

Altra cosa importante sul casting è che se scriviamo
>>> a = 1
>>> b = ‘ciao’
>>> a+b
Traceback (most recent call last):
File “<stdin>”, line 1, in <module>
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

Questo perché abbiamo cercato di sommare/accodare due tipi tra loro non compatibili. Se scriviamo:
>>> a = 1
>>> b = 2.4
>>> a+b
3.4

numeri python

Qui l’intero viene convertito automaticamente in float e poi i due numeri sono sommati tra loro.
Possiamo anche fare:
>>> a = ‘Ciao ‘
>>> b = ‘Guido’
>>> a+b
‘Ciao Guido’

Questo perché l’operatore + viene overloaded, ovvero cambia comportamento (sommare/accodare) a seconda dei casi. Volendo possiamo fare:
>>> a = 1
>>> b = ‘ ciao’
>>> str(a)+b
‘1 ciao’

Qui abbiamo eseguito un casting del numero in stringa e quindi l’operatore ha potuto valutare quale comportamento doveva avere (accodare).

Ultime cose: quando abbiamo provato a sommare/accodare un intero ed una stringa abbiamo ricevuto un messaggio di errore.
Il Traceback è un track dello stack degli errori che ci indica l’errore e dove si trova. Come vedremo prossimamnente se l’errore è in un file ci indicherà anche la riga esatta. Meglio di così.

Ultima cosa prima di chiudere, proviamo:
>>> 3 * ‘Ciao ‘
‘Ciao Ciao Ciao ‘

Se si moltiplica una stringa per un valore si ottiene la stringa ripetuta più volte. Ecco un esempio di quando torna particolarmente comodo:
>>> a = ‘Ciao \n’
>>> b = 20 * “-”
>>> print a + b
ciao

numeri python

Arrivederci alla prossima settimana.

Altre letture utili:
Programmare con Python. Guida completa
Python
Programmare in Python

Che cos’è la Digital Fabrication?

1 commento

digital fabrication

 

digital fabricationNegli ultimi anni si parla molto di stampa 3D ma c’è un concetto e un fenomeno ancora più ampio dentro cui racchiudere l’argomento 3D printing, quello della Digital Fabrication.

A sua volta la Digital Fabrication è parte di un orizzonte più ampio e di un movimento tecnologico e sociale quale quello dei Makers, gli artigiani digitali.

Molti dicono che c’è una rivoluzione in corso che cambierà i modi di produrre, con un cambiamento anche in termini economici e sociali.

Io non so se sarà una rivoluzione o un fenomeno limitato che non metterà in discussione i modi di produzione che finora hanno dominato nei vari settori.

Rivoluzione o nicchia, di sicuro un pezzo di futuro è già cominciato.

Ma che cos’è la Digital Fabrication?

Non è altro che la possibilità di costruire da soli, attraverso disegni digitali, oggetti solidi a tre dimensioni, che siano oggetti finiti, modelli di studio, plastici o prototipi.

Il movimento dell’open source dal software si estende anche all’hardware libero rendendo accessibili ad un’utenza di massa alcune tecnologie per produrre da sé manufatti di molti tipi, in una dimensione domestica, di piccola azienda o all’interno di un FabLab.

Il fenomeno è in crescita in tutto il mondo e anche in Italia la realtà dei FabLab, vere e proprie officine dell’innovazione manufatturiera, si va sempre più estendendo sul territorio.

Ma partiamo dalle basi. Dicevamo: che cos’è la Digital Fabrication?

Ce lo spiega molto bene Paolo Aliverti nel suo video corso su YouTube.

Con la semplicità e la competenza che derivano dall’esperienza concreta di un maker della prima ora sono spiegati bene i concetti fondamentali e le possibilità di applicazione pratica.

E’ un video corso in progress, una video playlist che crescerà nel tempo ma che vale la pena di seguire fin da ora.

Non aggiungo altro. Buona visione!

Questa la playlist su Youtube.

Altre letture utili:

Makers. Il ritorno dei produttori. Per una nuova rivoluzione industriale

Il manuale del maker. La guida pratica e completa per diventare protagonisti della nuova rivoluzione industriale

Stampa 3D. Guida completa

Nelle spire del Python (lezione 2): variabili, funzioni e parametri

Lascia un commento

logo python

logo python

Nella seconda lezione del nostro corso di programmazione Python ci occupiamo ancora del comando print.

Una cosa particolare del comando è che permette di definire parti della stringa stampata come sottostringhe variabili, così da avere un dinamismo nell’uso.

Un esempio banale:
>>> print “Ciao %s!” % “Mario”
Ciao Mario!

CiaoMario

Come vedete abbiamo definito un placeholder %s (che significa che si attende una stringa) all’interno della stringa da stampare e dopo il comando %, posto dopo la chiusura della stringa, abbiamo passato una stringa da stampare.

Certo che così risulta essere abbastanza inutile, tanto vale scrivere Mario al posto di %s e evitare tutto il resto.

Ma se al posto della stringa “Mario” poniamo una variabile, ovvero un contenitore di valori che possono mutare nel tempo[1], potremo far stampare quello che ci pare.

Ecco un esempio di applicazione complessa.

Andremo per gradi, nella prima versione definiremo una variabile poi la passeremo come argomento a print.

>>> nome = “Giovanni”
>>> print “Ciao %s!” % nome
Ciao Giovanni!

Adesso proviamo a farci dire dall’utente cosa stampare. Per farlo dovremo introdurre un nuovo comando, raw_input.

>>> nome = raw_input(“Inserisci il nome: “)
Inserisci il tuo nome e premi il tasto ENTER:

Poniamo di inserire Luigi, a seguire scriveremo

>>> print “Ciao %s!” % nome
Ciao Luigi!

ciao luigi

Complichiamo le cose. Facciamo sì che si scriva una volta sola il codice e si possa usare molte volte. Per farlo creeremo una funzione che verrà poi richiamata.

>>> def stampa_nome():
>>>
>>> print “Ciao %s” % nome

Il codice inizia con l’assegnazione di un nome alla funzione, per mezzo dell’istruzione def seguita dal nome della funzione[2] con due parentesi tonde, dentro cui possiamo, volendo passare dei parametri[3] e per finire il segno dei : (due punti) che implica la fine della riga.

>>> def stampa_nome():

Le righe seguenti, fino al termine della definizione della funzione stessa, saranno indentate di alcuni caratteri, sempre lo stesso numero, mi raccomando, per definire il blocco.

In altri linguaggi (derivati come sintassi dal C, come Java C++, C# e PHP) si utilizzano le parentesi graffe aperte e chiuse per definire un blocco { }, altri (pascal) usano due statement begin e end.

Python ha scelto la via più semplice, che richiede meno sforzo, e rende più leggibile il codice prodotto.

L’indentazione di solito e’ di 4 spazi (preferibile usare spazi anziché tabulazioni[4]) ma c’è chi ne usa 2 o 3 o persino 8.

Le due righe successive nell’esempio sono rientrare di 4 spazi (oltre a quello che subito dopo il prompt >>> che mettiamo solo per aumentare la leggibilità ma va ignorato da voi quando trascrivete gli esempi).

A questo punto se scriveremo

>>> stampa_nome()

otterremo

Inserisci il tuo nome e premi il tasto ENTER:
Ciao Luigi!

Sempre che si sia scritto Luigi prima di premere Enter.

Ultima versione e con questa terminiamo questo secondo incontro, qui useremo due funzioni, cosi da vedere come si passino dei parametri.

>>> def inserisci_nome():
>>> nome = raw_input(‘Inserisci il tuo nome: ‘)
>>> stampa_nome( nome )
>>>
>>> def stampa_nome( nome ):
>>> print “Ciao %s” % nome

Qui abbiamo due funzioni, la prima, inserisci_nome, chiede il nome e poi chiama la seconda, stampa_nome, passandogli la variabile nome come parametro.

Per lanciare il tutto possiamo scrivere

>>> inserisci_nome()

ma volendo possiamo anche scrivere

>>> stampa_nome( ‘Guido’ )

che stamperà

Ciao Guido!

inserisci nome

Alla prossima lezione ragazzi.
E … scrivete chiedendo tutto quello che vi salta in mente.
[1]. Si chiamano variabili perché possono variare, in informatica delle variabili immutabili sono definite costanti, perché una volta definite non cambiano mai. Per convenzione in quasi tutti i linguaggi si definiscono con tutte lettere maiuscole.

[2]. Per convenzione le funzioni sono definite con lettere minuscole e l’underscore _ come separatore.
Si tratta di convenzioni, siete liberi di violarle, ma a parte la maledizione del faraone VanRossumkhamen che si abbatterà su di voi, scriverete del codice fuori standard e sarete deprecati sulla pubblica piazza dall’intera comunità dei puristi del linguaggio. Quindi se lo fate lo farete a vostro rischio e pericolo.

[3]. I parametri di una funzione sono delle variabili che si passano alla funzione stessa. C’è un altro modo di usare variabili che siano utilizzabili dalla funzione, ed è quello di usare variabili cosiddette “globali”. Per motivi che capirete più avanti questa pratica e’ sconsigliata.

[4]. Usando spazi si è certi che le spaziature rimangano sempre tali anche quando il testo viene convertito ad esempio in HTML, PDF, Epub etc.

Altre letture utili:

Programmare con Python. Guida completa

Python

Programmare in Python

I 3 migliori CAD Android a confronto

7 commenti

autocad 360

android-cad-appsOggi è possibile avere un software CAD anche su dispositivi mobili Android, tablet o smartphone, e portarsi dietro i propri file DWG, per visualizzarli, editarli e condividerli con altri in tempo reale, dovunque siamo.

Indubbiamente si tratta di una grande comodità, un’abitudine che si sta sempre più diffondendo tra gli utenti CAD.

Ho deciso di mettere a confronto i 3 CAD Android che a me sembrano più validi tra quelli che gestiscono i file DWG, il formato nativo di AutoCAD che è lo standard più largamente diffuso.

Le tre app Android che ho scelto sono AutoCAD 360, GstarCAD MC e ZWCAD Touch e ad ognuna di queste corrisponde un software desktop con il quale preferenzialmente si interfacciano.

Dico “preferenzialmente” perché l’adozione del formato DWG di fatto rende possibile senza alcun problema la completa gestione di file di questo tipo per tutte e tre le applicazioni, risultando su questo praticamente intercambiabili.

Anche file creati con  CAD come DraftSight, nanoCAD o altri possono essere tranquillamente aperti e gestiti da queste applicazioni.

Ma vediamoli uno per uno.

autocad 360AutoCAD 360

 

Autodesk è stata tra i primi a dotarsi di un’applicazione mobile. Questa app è infatti l’evoluzione di AutoCAD WS, già ottima applicazione (a giudizio di alcuni persino migliore di questa).

AutoCAD 360 c’è in due versioni, quella free, gratuita e quella PRO, in abbonamento, con un costo annuale che va da 49.99 a 99.99 dollari.

Le differenze sono riportate nella seguente tabella:

autocad360pro-prezzi

Come si vede la versione free ha alcune limitazioni relative alla memoria sia per le capacità di archiviazione che per le dimensioni dei file, consente l’apertura online (anche da Dropbox) dei file, la visualizzazione dei disegni ed alcune (poche per la verità) possibilità di editazione.

Offline risultano apribili solo i disegni precedentemente visualizzati, per cui un disegno caricato sul dispositivo la prima volta risulta disponibile solo se si è connessi. Questa è una limitazione piuttosto fastidiosa e di cui non si capisce la logica.

L’interfaccia risulta molto elegante, con in basso le icone che attivano i comandi di disegno, misurazione, annotazione, gestione layer, visualizzazione, gestione layout, selezione colori, geolocalizzazione, impostazione unità e schermo intero. 

screen-autocad360

In alto, sulla sinistra si richiama il menu che consente la connessione, l’accesso alle community e i commenti, sulla destra un’icona per l’aggiunta di post e un’altra per la condivisione e la stampa. Molte di queste funzioni non sono attivabili se il dispositivo è offline.

La versione free perciò ha caratteristiche di poco superiori a quelle di un semplice visualizzatore, caratteristiche pienamente presenti nella versione PRO, la quale però a mio avviso ha un costo di abbonamento eccessivo per un’app mobile.

Sulla politica dei prezzi Autodesk ancora una volta non si smentisce.

gstarcad mcGstarCAD MC

 

Anche questa applicazione presenta una versione free gratuita e una versione PRO, che però ha un costo accessibile, cioè 7,43 euro.

L’interfaccia ha un’impostazione simile ad AutoCAD 360, con un numero minore di icone ma con l’attivazione più o meno degli stessi comandi.

screen_gstarcadmc

La versione free apre, visualizza e salva i file DWG offline senza problemi e online attraverso Dropbox o consentendo il download sia da email che da pagine web e reti.

Ha una piena integrazione con GstarCAD per Windows e consente di disegnare linee, polilinee, cerchi, archi, rettangoli, schizzi e annotazioni sia su disegni esistenti che su nuovi disegni.

La versione PRO ha maggiori possibilità in termini di editing e ad un prezzo onesto aggiunge funzionalità utili per una gestione più completa dei disegni e dei file.

GstarCAD MC forse è meno bella di AutoCAD 360 ma è più generosa e sicuramente più utile e conveniente in entrambe le versioni.

zwcad touchZWCAD Touch

 

Questa app esiste solo in versione free e nonostante questo presenta caratteristiche di ottima qualità e minori limitazioni rispetto ai due CAD Android precedenti.

L’interfaccia si presenta così:

In basso su sfondo chiaro ci sono praticamente le stesse icone di AutoCAD 360 (che non sto a ripetere) con all’interno qualche comando in più, compresa la possibilità di annotazioni vocali al disegno.

Gestisce bene i file sia offline che online supportando molti servizi cloud: non solo Dropbox ma anche Google Drive e molti altri.

Veloce e fluido nel funzionamento anche con disegni impegnativi risulta la soluzione ideale per lavorare in team.

Questa immagine estrapolata dal sito ufficiale ne rende bene l’dea.

workflow zwcad touch

Come avrete capito dei tre CAD Android ZWCAD Touch è il mio preferito, non soltanto perché è gratuito ma perché a mio giudizio è il più funzionale e completo.

Siete d’accordo?

Altre letture utili:

Smartphone Android. Dall’acquisto alla configurazione avanzata

Android per tablet e smartphone. Facile per tutti

Sviluppare applicazioni per Android: in 7 giorni

Nelle spire del Python (lezione 1): il comando print

Lascia un commento

console python

Questo è il primo di una serie di post che definiscono un vero e proprio corso di programmazione sul linguaggio Python.

Con questo articolo Carlos Catucci inizia la collaborazione con il blog openoikos, diventandone un autore.

Se altri volessero proporre altri contenuti, compatibilmente alle tematiche del sito, troveranno la stessa ospitalità.

python_sh-150x150Il linguaggio Python è stato creato da Guido Van Rossum, insignito del titolo di “benevolo tiranno a vita” dagli appassionati utilizzatori del linguaggio stesso.

Il Python è un linguaggio particolarmente attento alla pulizia e alla semplicità  del codice, multipiattaforma (gira persino su tablet e smartphone).

Si tratta di un linguaggio ad alto livello, molto “natural speaking”, con una sintassi elegante.

guido van rossum
Guido Van Rossum

Python è anche un liguaggio semi-interpretato, un poco come Java, visto che gli applicativi per girare richiedono un runtime ovvero una virtual machine, che fa girare codice meta-compilato.

O meglio, per essere precisi, lo fa se trova il meta-compilato e quest’ultimo ha una data di creazione uguale o maggiore del sorgente; in caso contrario provvede prima a ricompilare (o compilare se non esiste il meta-compilato) i sorgenti. Ed in questo è nettamente superiore a Java.

Viene usato dalla NASA per applicazioni di calcolo complesse, dalla Industrail Light and Magic, e da tantissime altre aziende.

Ma sopratutto ci sono moltissimi applicativi software scritti in Python. E in particolare ce ne sono tantissimi di grafica scritti o scriptabili in Python.

Lo scopo di questi articoli e’ di fornire un corso di programmazione del linguaggio, ma non uno dei soliti corsi sterili dove qualcuno impartisce lezioni programmate e se non avete capito e’ un vostro problema.

L’idea è di creare un corso che si dipana in base alle domande/richieste delle persone che vorranno seguirlo. Si inizia con questa prima lezione dove ci approcciamo al linguaggio, e vediamo con qualche esempio come funzioni. Se chi deciderà di seguirlo mi farà  domande o richieste, cercherò’ di proseguire seguendo le indicazioni.

 Cominciamo a vedere come funziona un programma Python.

Per lanciare un programma serve una console, quindi su Linux/MacOsX aprirete una console, su Windows una Command (mi scuso fin d’ora per eventuali imprecisioni nell’utilizzo di Windows, sono anni che lo evito).

Una volta aperta la nostra console digiteremo python.

Scusate, dimenticavo, su macchine Windows dovete prima installare Python, gli altri sistemi operativi lo includono di serie. Speriamo che a Redmond prima o poi si facciano furbi.

console python
console di python

Dopo avere digitato il comando python apparira un prompt composto da tre simboli maggiore (>>>).

Quindi quando vedrete scritto qualcosa tipo: 

>>> print “Ciao mondo” 

potete ignorare i 3 > e il primo spazio successivo. Per eseguire dovrete scrivere solamente 

print “Ciao mondo” 

Ecco che senza intenzione abbiamo eseguito il primo programma Python che, en passant, è anche il tipico “primo programma” che viene eseguito nei tutorial di ogni linguaggio. 

Subito dopo il prompt troveremo quanto abbiamo indicato all’interno dei doppi apici, ovvero 

Ciao mondo 

Ecco come viene il tutto: 

>>> print “Ciao mondo”

Ciao mondo

>>> 

La parte tra doppi apici è una stringa che vogliamo far stampare a video, mentre print è una istruzione che indica all’interprete di stampare quanto segue.

Certo cosi’ sembra davvero poco pratico, ma scopriremo piano piano come sia potente l’istruzione print (e anche il resto).

Per prima cosa dobbiamo dire che oltre ai doppi apici possiamo, se preferiamo, racchiudere tra apici singoli, per python non fa differenza alcuna. Quindi se volessimo virgolettare una frase all’interno della stringa potremmo scrivere 

>>> print ‘E Giovanni disse: “Ciao amici, come state?” 

Ma cosa accadrebbe se all’interno della stringa fosse presente anche un’apostrofo (ovvero un apice singolo)? Per ovviare a questo problema (e ad un altro che vedremo subito dopo) esiste la possibilità  di racchiudere la stringa tra 3 apici (singoli o doppi). 

>>> print “””E Giovanni disse: “Salve amici, dov’eravate finiti?”. Non ottenne alcuna risposta.””” 

Il secondo vantaggio del triplice apice lo troviamo perché possiamo spezzare la stringa su più righe senza che sia necessario usare un simbolo di continuazione (nello specifico sarebbe la barra invertita, il simbolo \ in pratica, detto counterslash, ma lo vedremo in seguito).

Potremo quindi avere un qualcosa del tipo: 

>>> print “””E Giovanni disse:

“Salve amici, dov’eravate finiti?”.

Non ottenne alcuna risposta.””” 

L’interprete sa che fino a che non verranno chiusi i tripli apici, il comando non è completo. 

Per questa volta chiudiamo qui l’articolo, ma nella prossima lezione vedremo di capire cosa siano le variabili e che uso se ne possa fare assieme al comando print.

 

Altre letture utili:

Programmare con Python. Guida completa

Python

Programmare in Python

4 libertà non bastano a cambiare il mercato del CAD

3 commenti

mercato cad

bivioIl free software inteso in senso stretto è quello teorizzato da Richard Stallman ed è il concetto di “libertà” più di quello di “gratuità” a caratterizzarlo.
Libertà di usare, modificare, migliorare e distribuire.

Su questi principi è nato Linux nelle sue varie distribuzioni e una marea di piccoli e grandi software applicativi.
Questo movimento è stato il principale “nemico” dei monopolisti del software e da esso sono nate iniziative straordinarie, a volte al limite dell’incredibile.

Tuttavia sarebbe sciocco non riconoscerne anche i limiti, in particolare in alcuni ambiti.
Nel settore del CAD l’open source si è sviluppato poco, non a un livello tale per costituire una vera alternativa ad Autodesk e ad altre grandi software companies.
Con tutto il rispetto e la riconoscenza per Stallman ed i suoi seguaci evidentemente le 4 libertà non bastano a cambiare il mercato del CAD.

Se ci liberiamo da una visione ideologica del problema appare però evidente e degno di considerazione un altro fenomeno, una terza via che è intermedia tra i due modelli e che sta crescendo.
Nascono alleanze, consorzi, piattaforme di sviluppo condivise che si rivolgono ad aziende, programmatori e utenti al fine di far nascere e crescere applicazioni.
C’è una nuova accessibilità al mercato anche per i pesci piccoli, una situazione in cui una buona idea e la capacità di realizzarla non sono meno importanti della disponibilità di capitali.

Nel post precedente vi ho parlato della Open Design Alliance e del consorzio IntelliCAD.
Credo che un blog come questo debba fare attenzione anche a questa realtà, perché questa “apertura parziale”, in cui la piattaforma di base non è modificabile ma comunque disponibile per aggiungere e far funzionare altro codice, sia la strada per far crescere altri tipi di libertà e di creatività e per mettere a disposizione strumenti più efficaci a noi poveri mortali, magari non più gratuitamente ma comunque al giusto prezzo.

Alla base della crescita di questo albero, dei suoi rami e dei suoi frutti c’è comunque un seme di libertà.
Provocatoriamente si può affermare che c’è una quinta libertà, quella di intraprendere, di tanti nuovi e capaci programmatori partendo da una base di elaborazione consolidata da altri.

Per questo ho deciso di andare oltre il software free e freeware, allargando il campo a programmi originati e nutriti da altre forme di condivisione.
Nel rispetto dei principi di fondo della nostra community credo che sia un lavoro utile a tutti e che ci consenta di coinvolgere un numero più ampio di persone.

Con la dovuta umiltà queste pagine web esistono per servire a qualcosa e a qualcuno, concretamente e laicamente, senza atti di fede.
Per arrivare alla meta non basta conoscere la direzione, ci vogliono anche scarpe buone. Noi ci occupiamo di queste, dove volete andare decidetelo voi.

Open Design Alliance: come nascono le alternative ad AutoCAD

Lascia un commento

open design alliance

open design allianceLa Open Design Alliance è una organizzazione no profit che mette a disposizione dei propri membri una piattaforma di sviluppo software chiamata Teigha che consente la creazione di applicazioni CAD utilizzando un formato DWG compatibile con quello di Autodesk.

Nasce nel 1998 col nome di OpenDWG Alliance con l’idea di rendere la tecnologia CAD di base, e di conseguenza il formato DWG ormai diventato uno standard di fatto, accessibile a tutti gli sviluppatori.

Prevedibilmente ciò ha scatenato le ire di Autodesk dando il via ad una serie di battaglie legali ma l’associazione, forte delle numerose e qualificate adesioni ed avendo sviluppato una piattaforma alternativa, ha resistito ed oggi rimane il principale punto di riferimento per molti operatori del settore.

L’iniziativa è stata utile a vari livelli sia a chi ha potuto sviluppare così un proprio software sia a chi ha avuto la necessità di mettere in relazione il formato DWG a software con altri formati.

Aderiscono oggi più di 1300 soci di circa 50 paesi, dal singolo sviluppatore freelance, a piccole e medie imprese fino a grandi software house come ESRI, Adobe, Siemens, Bentley, Nemetschek.

Da qui sono nati i più importanti “cloni” di AutoCAD, software dwg-compatibili che hanno messo in discussione il monopolio di Autodesk, con il rilascio di CAD freeware o a costi comunque più bassi per l’utente finale.

Si è così colmato un vuoto tra AutoCAD (ed altri software di fascia alta) e la debolezza delle iniziative open source in questo specifico segmento.

Il panorama è vario ed in continua evoluzione. Vi segnalo le iniziative imprenditoriali in ambito CAD secondo me più interessanti:

Nanosoft

Di nanoCAD e della Nanosoft ho già parlato su questo blog in più occasioni e non mi ripeto.

Graebert

I sistemi CAD di Graebert sono stati i primi a supportare Windows, Mac e Linux e possono essere utilizzati sia su desktop sia su dispositivi mobili.

Il prodotto di base si chiama ARES Commander Edition, software CAD su cui si appoggiano oltre agli applicativi Graebert anche progetti di altri come DraftSight di Dassault Systèmes o CorelCAD di Corel Corporation, tanto per citare i più famosi.

IMSI/Design

IMSI/Design propone diversi software: da DoubleCAD (freeware) a TurboCAD in una vasta gamma di prodotti che ad un prezzo contenuto vengono incontro a diverse esigenze dei progettisti.

Knowledge Base

Knowledge Base propone Civil Designer come suite CAD per l’ingegneria civile per la progettazione di infrastrutture come strade, acquedotti ed altri tipi di reti.

ZWSOFT

L’azienda cinese ZWSOFT propone CAD 2D e 3D di ottima qualità che ricalcano le caratteristiche dei prodotti Autodesk. I suoi software di punta sono ZWCAD+ (con una serie di applicazioni per la meccanica e l’architettura) e ZW3D.

Bricsys

Bricscad è l’ottimo CAD di Bricsys che si è imposto tra le principali alternative ad AutoCAD. Oltre a essere un CAD completo per il 2D e il 3D, propone un catalogo di applicazioni dal GIS all’ingegneria civile alla meccanica che coprono un ampio spettro di possibilità.

IntelliCAD

IntelliCAD Technology Consortium è un consorzio di imprese che mette a disposizione degli associati una collaudata piattaforma di sviluppo software per il CAD.

Aderiscono ad IntelliCAD anche due importanti aziende italiane: Analist Group, che copre con i suoi applicativi vari settori di intervento (topografia, sicurezza, certificazione energetica, ecc.) e Progesoft che propone la più completa alternativa italiana ad AutoCAD: ProgeCAD, il quale si suddivide in tre prodotti: ProgeCAD Professional, ProgeCAD Architecture e ProgeCAD Mechanical.

Per farti un’idea ancora più precisa ti invito a linkare i siti evidenziati sopra e a scaricare le versioni free o trial dei vari software.

Di fronte a tanta roba chiudo con una domanda che sorge spontanea: è ancora indispensabile lavorare con AutoCAD?

Quante stampanti 3D si vendono?

2 commenti

stampanti 3d

mercato-stampanti-3dSi parla molto di stampanti 3D, al punto che anche sul palcoscenico politico italiano l’argomento è citato e dibattuto più o meno appropriatamente.

Ma si sa, nel nostro paese l’innovazione è spesso sbandierata e quasi mai praticata.

E’ una rivoluzione? Chi sostiene e chi nega questa tesi quasi sempre basa il ragionamento su considerazioni opinabili, su diverse “visioni” del futuro fortemente condizionate da opinioni preesistenti e mai da dati, da elementi misurabili.

La tecnologia non è nuovissima, ciò che è nuovo è l’accessibilità, il fatto che il prezzo sia sempre più abbordabile anche dai normali “consumatori”.

Il merito è anche dei Makers, degli sperimentatori dell’open hardware e ne ho già parlato in un articolo di questo blog. Il movimento dell’open source, così come avviene con il software, porta sempre vantaggi agli users, che in questo caso sono anche consumers (l’hardware non può essere gratuito).

Ma quante stampanti 3D si vendono? Qual’è la tendenza del mercato? E come è ripartito questo mercato?

Finalmente possiamo saperne qualcosa anche noi non addetti ai lavori. Per gli addetti ai lavori c’è la relazione annuale della Wohlers Associates che fotografa il fenomeno ma non tutti hanno la possibilità o l’intenzione di sborsare 495 dollari per acquistare il report.

Quando i dati sono interessanti però qualche notizia trapela e noi “buoni pirati”, sostenitori convinti degli open data, li diffondiamo volentieri anche quando aperti non lo sono.

La fonte è un articolo su 3dprintinganalysis.com, che sinteticamente riportiamo (soprattutto a beneficio di chi ha difficoltà con la lingua inglese).

I dati si riferiscono alle stampanti 3D consumer-oriented, cioè quelle il cui prezzo è inferiore a 5000 dollari (3600 euro).

1) Quante stampanti 3D sono state vendute?

Riporto il grafico che è chiarissimo: Cumulative-Units-Sold-3Dprint480 Come si può vedere il mercato è indubbiamente in crescita e l’ultimo dato disponibile è riferito al 2012 con circa 68.000 stampanti vendute.

Cosa sarà successo nell’ultimo anno e mezzo?

Visto il trend non è azzardato ipotizzare una ulteriore crescita, magari più bassa in termini percentuali rispetto all’anno precedente ma comunque significativa. Il tasso di crescita in termini percentuali non può eguagliare quello dei primi anni ma le vendite in termini assoluti sono ancora in forte aumento.

Stratasys ha recentemente pubblicato il dato relativo al primo trimestre del 2014 che riporta un aumento del 76% in termini di fatturato (ed i prezzi non sono saliti) rispetto allo stesso periodo del 2013. Questo è un segno che il mercato si sta comportando bene e che nel 2013 il tasso di crescita è stato sicuramente superiore al 46% (circa 100.000 stampanti vendute).

2) Quante stampanti 3D saranno vendute nel prossimo futuro?

Fare una previsione è difficile, soprattutto su una tecnologia in rapida evoluzione.

Nell’articolo citato vengono fatte tre diverse ipotesi, riassunte in questo grafico: Forecasting-3D-Printing-Unit-Sales-per-Year480 Le tre diverse ipotesi fanno riferimento a tre tassi di crescita differenti (27, 46 e 96%) tutti e tre basati su considerazioni statistiche che intersecano dati generali di settore a dati particolari riferiti ad aziende significative.

Per capire meglio poniamoci la seguente domanda: “quando arriveremo alla vendita di  un milione di stampanti 3D consumer?”

Sulla base di queste stime, se il mercato cresce secondo lo scenario medio-alto, questo risultato sarà raggiunto tra il 2016 e il 2018.

Se il mercato è più vicino alla parte bassa dello scenario il risultato si sposta al 2020.

3) Come è ripartito il mercato attualmente?

Anche in questo caso un grafico è più esaustivo di qualsiasi discorso: marketshare-breakdown480 Come si vede ci sono tre attori principali: MakerBot (34%), 3DSystems (16%) e FlashForge (16%).

Il restante 34% è occupato da altri produttori importanti come Solidoodle e Ultimaker e una categoria “altro” che contiene aziende come Printrbot, MakeGear, XYZprinting e una base ancora più frammentata di piccoli produttori.

Durante la crescita sarà interessante vedere come le quote di mercato cambiano, soprattutto in rapporto ai mercati dei paesi emergenti.

Spero che i numeri e i grafici sopra riportati siano stati di aiuto per comprendere le dimensioni e le previsioni di questo fenomeno.

« Pagina precedente
Pagina successiva »

Barra laterale primaria

Scarica gratis i nostri software

Prenota il video corso

Partecipa al nostro forum

forum nanocad italia

Post in evidenza

software computi gratuiti

I migliori 3 software gratuiti per computi metrici

blocchi cad gratis

I migliori siti per scaricare blocchi CAD gratis

video tutorial autocad

I migliori video tutorial gratuiti su AutoCAD

come impostare scala autocad

Il CAD e l’equivoco delle scale

retini nanocad

Come aggiungere nuovi retini a nanoCAD free

sistemi riferimento italia

Tutorial QGIS 4: i Sistemi di Riferimento più usati in Italia

proiezioni geografiche

Tutorial QGIS 3: la rappresentazione della Terra ed i Sistemi di Riferimento

formati qgis

Tutorial QGIS 2: i formati dell’informazione geografica

logo qgis

Tutorial QGIS 1: l’evoluzione dell’informazione geografica e il GIS open source

alternative autocad lt

Le alternative gratis ad AutoCAD LT per il CAD 2D

OPENOIKOS di Fabrizio Pieri - P.IVA 02181310562 - email: openoikos@gmail.com