Macro Half-Hull Model/it

This macro makes simple models of the hulls of boats and ships. It is intended to aid people modeling or designing hulls by providing the hull surface in a straight forward and timely fashion so they can avoid the time consuming full process.



Introduzione
Since antiquity boat builders have had to design boats and then realise them in a three dimensional environment where very few lines are straight, very few surfaces flat and no angles constant over a distance. Hull models were used to make to-scale models which could then be used to review the design or communicate concepts to other persons. The laws of hydrodynamics demand that any vessel passing through a liquid be symmetrical in the cross-section if it is to track (move in a straight line) accurately. Consequently building one side of the hull in the model was all that was necessary - if the half-hull was perfect then its mirror image would also be perfect. In latter years half-hulls became used for symbolic purposes such as plaques, and nautical art.

This code came out of a project to build a model in FreeCAD of a 12.5 metre sailing boat. The builders no longer had drawings and the son of the original owner doubted there ever were full drawings. Consequently the hull dimensions had to be measured and then a model constructed within the software, Modern software packages like FreeCAD offer many beneficial features like symmetry constraints but when the final measurement is a model that is "easy on the eye", much "massaging" of models is required. This code was written to help automate that process.

Lo scopo iniziale di questo codice era quello di fornire uno scafo simmetrico che fosse malleabile e adattabile al modello 3D in costruzione. Poiché il software si è evoluto è stato generalizzato e speriamo che sia utile a chi:
 * progetta imbarcazioni e produce schemi per costruire delle barche
 * costruisce barche e sta cercando di modellare ciò è descritto nello schema
 * costruisce modelli di scafo.

Certamente i progettisti di imbarcazioni commerciali per sviluppare il loro lavoro utilizzano dei software di fascia alta, questa macro non ha intenzione di sostituirli, ma può essere utile all'hobbista.

I progetti navali hanno una storia diversa rispetto agli edifici e quindi anche la presentazione è un po' diversa. Ecco un esempio di una barca a vela che ha più di un secolo:



Uno degli obiettivi finali di questo software è quello di utilizzare l'ambiente Draft per generare alcuni di questi schemi utilizzando il modello per generare le linee.

Note sulle Unità in FreeCAD:

Al momento, in FreeCAD non c'è ancora nessun Sistema di gestione delle unità, ma ovviamente un costruttore di barche o modellatore ha bisogno di un sistema di dimensionamento accurato. Per utilizzare questa macro, si deve impostare la griglia di FreeCAD con la dimensione appropriata al lavoro (per esempio mm, cm, pollici, piedi). FreeCAD è coerente, una unità di FreeCAD sarà sempre uguale a una unità di FreeCAD. Se avete deciso che una unità FreeCAD corrisponde a una specifica lunghezza fisica, allora i vostri disegni rimarranno dimensionati coerentemente. Al momento si sta lavorando su un Sistema di unità per FreeCAD, quindi questa situazione potrebbe cambiare presto.

Descrizione
Per questa macro, le forme della carena sono definite da un minimo di 3 schizzi di FreeCAD: uno nel piano YZ, uno o più nel piano XZ e uno nel piano XY. Qui è presentato lo scafo minimo supportato da questa macro, ha solo 3 schizzi:



Nota: nello schema precedente stiamo guardando direttamente a poppa, la prua è rivolta in direzione opposta al punto di vista.

Da davanti a dietro (da prua a poppa) i 3 schizzi sono:

Forse è più facile da vedere con 7 schizzi (uno nel piano YZ, uno nel piano XY e 5 nel piano XZ):



Con 5 schizzi nel piano XZ è più facile cominciare a percepire la forma dello scafo. Le prossime 2 immagini mostrano le linee di disegno sovrapposte al modello che FreeCAD produce,



questa seconda figura riproduce lo stesso modello ruotato di 90 gradi, con la prua in primo piano:



Alcuni punti da prendere in considerazione:


 * gli schizzi sono solo per:
 * la stemline (o linea di prua) nel piano YZ (rossa nello schema sopra);
 * la parte superiore dello specchio di poppa nel piano XY (blu nel diagramma);
 * diverse sezioni dello scafo nel piano XZ (verde nello schema precedente)
 * negli schizzi si disegna solo il lato di dritta dello scafo, il lato di babordo verrà generato come immagine speculare
 * ogni linea multisegmento deve essere disegnato in uno schizzo separato
 * ogni schizzo deve avere lo stesso numero di segmenti (che è 3 negli esempi precedenti)
 * più segmenti di linea ci sono in ogni Schizzo e più il modello prodotto da FreeCAD si avvicina a uno scafo curvo
 * non vi è alcun limite al numero di segmenti di ciascuno schizzo, qualsiasi numero da uno in poi
 * non vi è alcun limite al numero di schizzi nel piano XZ (cioè le sezioni), qualsiasi numero da uno in poi

Con sufficienti schizzi il modello generato diventa verosimile:



La macro HalfHull genera 4 modelli:


 * mezzo scafo di dritta
 * mezzo scafo di babordo
 * scafo completo
 * paratie per lo scafo completo, sia con un ponte raso che per un ponte con cassero

Questi modelli sono tutti prodotti nella posizione unificata dello spazio di FreeCAD in modo che possano essere assemblati - per esempio le paratie possono essere inserite perfettamente nello scafo completo. Questa è una foto delle paratie di un modello di barca in costruzione:



Così come le paratie generate dalla macro (notare che queste paratie sono per un cassero e non per un ponte raso):



L'immagine composita sottostante mostra i principali risultati prodotti da questo software (attualmente il mezzo scafo di babordo non è mostrato ma è lo specchio del mezzo scafo di dritta che è mostrato). I prodotti sono in senso orario dall'alto a sinistra:
 * mezzo scafo di dritta
 * scafo completo
 * paratie (per ponte raso, le paratie dell'immagine precedente erano per un ponte con cassero)
 * lo scafo completo con le paratie inserite



Come nuove caratteristiche, opzionalmente la macro può anche produrre targhe per i mezzi-scafi, o una bottiglia per lo scafo completo:





Installazione
Tutto il codice di halfHullModel.FCMacro è contenuto in una macro, quindi per installarla basta copiare il suo codice nella appropriata directory delle Macro. Dopo, si può invocare halfHullModel.FCMacro dal menu Macro, dalla console Python o da un pulsante della barra degli strumenti (il metodo preferito).
 * per informazioni su come installare il codice delle macro vedere la pagina Come installare le macro
 * per informazioni su come installarla abbinata a un pulsante in una barra degli strumenti vedere la pagina Personalizzare la barra degli strumenti

Utilizzo
Le operazioni FreeCAD coinvolte nella generazione del modello dello scafo sono piuttosto complesse e numerose. Alcune cose come, ad esempio, la direzione in cui viene disegnata una linea possono portare FreeCAD alla costruzione dello scafo o al fallimento o a produrre deformazioni come questa:



Di conseguenza, i passaggi successivi devono essere seguiti attentamente. La macro non consente alcune incongruenze di dati, in generale se i dati (cioè gli schizzi) non sono corretti il prodotto è simile a una grattugia oppure il riempimento della macro fallisce con un errore.

Le successive istruzioni si riferiscono ai quadranti del grafico XY, dove i 4 quadranti sono etichettati in questo modo:



Creare un Nuovo Documento

La prima cosa da fare è quella di creare un nuovo documento in FreeCAD. Questo documento conterrà tutti gli schizzi che compongono la definizione dello scafo.

Creare la linea di prua
Il primo passo consiste nel creare i dati per il modello dello scafo che si vuole realizzare. I dati sono forniti in forma di schizzi interni a FreeCAD. Quando il modello dello scafo è stato generato, per apportare delle modifiche basta semplicemente editare gli schizzi, e poi ripetere la macro.


 * 1) creare un nuovo schizzo [[Image:Sketcher_NewSketch.svg|24px]] nel piano YZ
 * 2) partire dall'origine (0,0) e disegnare verso l'alto nel Quadrante I
 * 1) l'estremità inferiore della linea di prua (stemline) si trova nell'origine (0,0) - questo è il punto rispetto al quale verrà effettuato il posizionamento di tutte le sezioni e dello specchio di poppa
 * 2) il numero di segmenti della linea di questo schizzo è il numero che sarà richiesto in tutti gli altri schizzi
 * 3) salvare lo schizzo [[Image:Sketcher_LeaveSketch.svg|24px]]
 * 4) per facilitarne l'identificazione, probabilmente vale la pena di rinominare lo schizzo con un nome simile a "schizzo della linea di prua"

Creare gli schizzi delle sezioni trasversali
La finestra di dialogo chiede a quale distanza dall'origine deve essere posto lo schizzo. Questo stabilisce la distanza della sezione trasversale dal fondo della linea di prua (che si trova in (0,0)). Le sezioni possono essere equidistanti, ma non è obbligatorio. La sezione più avanzata sarà a Y=0 (cioè l'origine in cui si trova l'estremità inferiore della linea di prua) o a Y<=0. Le sezioni saranno sempre posizionate a valori negativi di Y dato che lo specchio di poppa si trova al massimo valore negativo di Y. Nell'esempio precedente, lo schizzo della sezione è collocato a una distanza di 50 unità di FreeCAD dall'origine, sull'asse Y negativo. - la prima (cioè principale) sezione dovrebbe iniziare all'origine (0,0) (o avrà una strana forma dato che la linea di prua termina a 0,0), ma per le altre sezioni basta iniziare sull'asse Y.
 * 1) creare un nuovo schizzo [[Image:Sketcher_NewSketch.svg|24px]] nel piano XZ
 * 2) appare la seguente finestra di dialogo:
 * 1) cominciare dall'asse Y e disegnare verso l'alto nel quadrante I
 * 1) per la linea utilizzare lo stesso numero di segmenti utilizzati nello schizzo della linea di prua
 * 2) salvare lo schizzo [[Image:Sketcher_LeaveSketch.svg|24px]]
 * 3) per ripetere questo passaggio indispensabile, può essere più veloce copiare questo disegno e poi distribuire le copie sull'asse Y, alle singole copie si possono apportare le modifiche necessarie
 * 4) per la denominazione, dare una sorta di sequenza alle sezioni renderà le cose più facili, iniziando da prua (cioè dalla linea di prua) e incrementando la numerazione verso poppa (cioè lo specchio di poppa)

Creare lo schizzo dello specchio di poppa nel piano XY

 * 1) creare un nuovo schizzo [[Image:Sketcher_NewSketch.svg|24px]] nel piano XY
 * 2) iniziare sull'asse Y tra quadranti III e IV,  e disegnare verso l'alto nel quadrante IV in modo che il punto finale coincida con il punto più a destra dello schizzo della più piccola sezione creata nel piano YZ
 * 1) per la linea utilizzare lo stesso numero di segmenti utilizzati nello schizzo della linea di prua
 * 2) salvare lo schizzo [[Image:Sketcher_LeaveSketch.svg|24px]]
 * 3) per facilitarne l'identificazione, probabilmente vale la pena di rinominare lo schizzo con un nome simile a "schizzo dello specchio di poppa"

Salvare il Nuovo Documento

Ora salvare il documento che contiene gli schizzi che definiscono la forma dello scafo, dandogli un nome descrittivo

Quando tutti gli schizzi sono stati creati e posizionati, nella vista dall'alto il documento dovrebbe essere simile a questo:



Le principali limitazioni per costruire il modello sono:
 * l'estremità inferiore della linea di prua deve terminare in (0,0)
 * l'estremità inferiore del centro di ogni sezione dovrebbe terminare in corrispondenza dell'asse Y - notare che può avere qualsiasi valore Z

Questo conclude la prima parte che consiste nel creare i dati che la macro utilizza per creare due mezzi scafi o uno scafo completo. La seconda parte è descritta nella sezione seguente ed è intitolata Interfaccia utente

Interfaccia utente
In questa fase la macro raccogliere alcune informazioni dall'utente e quindi elabora gli schizzi input per generare i modelli di scafo desiderati. Questa è l'immagine dell'unica GUI della macro che permette di configurare i principali dettagli per la produzione dei modelli di scafo dagli schizzi:



Nella finestra GUI si può sceglire:

- selezionando questa casella la macro produce un modello mezzo scafo di dritta - se selezionata la macro inserisce il mezzo scafo su una targa - se selezionata il mezzo scafo viene inserito nella parte superiore della targa, e al di sotto dello scafo può essere collocata una chiglia generata separatamente - se selezionata la macro produce un modello mezzo scafo di babordo - se selezionata la macro inserisce il mezzo scafo su una targa - se selezionata il mezzo scafo viene inserito nella parte superiore della targa, e al di sotto dello scafo può essere collocata una chiglia generata separatamente - selezionando questa casella la macro produce un modello completo - se selezionata la macro inserisce lo scafo completo in una bottiglia trasparente (completo di tappa in sughero) - se selezionato il mezzzo scafo viene posizionato nella parte superiore della bottiglia rispetto alla posizione centrale, e al di sotto dello scafo può essere collocata una chiglia generata separatamente - selezionando questa casella la macro produce delle paratie con la parte superiore allineata alla parte superiore dello scafo, le paratie non sono generate per le prime 2 sezioni di prua o le ultime 2 sezioni di poppa - paratie per ponte raso - selezionando questa casella la macro produce delle paratie con la parte superiore al di sopra della parte superiore dello scafo - paratie per ponte con cassero. - l'esecuzione viene interrotta e si chiude la finestra - l'esecuzione utilizza il file di dati e le impostazioni dell'ultima esecuzione, le modifiche alle impostazioni vengono ignorate - si apre la finestra standard Apri file in cui l'utente può selezionare un file o Annulla e uscire
 * Starboard half-hull
 * Mounting plaque
 * Allow space for keel
 * Port half-hull
 * Mounting plaque
 * Allow space for keel
 * Complete hull
 * Bottle for complete hull
 * Allow space for keel
 * Bulkheads for flush deck
 * Bulkheads for coachhouse
 * Bulkheads to skip at bow - Paratie da omettere a prua determina il numero di sezioni trasversali da lasciare senza paratie a prua
 * Bulkheads to skip at stern - Paratie da omettere a poppa determina il numero di sezioni trasversali da lasciare senza paratie a poppa
 * La dimensione della parte superiore delle paratie è configurata secondo il seguente schema:
 * Pulsante Cancel
 * Pulsante Re-Use Last File
 * Pulsante Select File

Quando viene eseguita, la macro prende i dati di configurazione dall'utente e poi legge gli schizzi di Sketcher nel file di input selezionato.

Nota: Dato che la macro opera attraverso gli schizzi essa stampa le eventuali eccezioni e alcuni passaggi chiave nella Vista Report. Se si ottengono dei risultati imprevisti o mancano alcune parti, probabilmente è il primo posto in cui conviene guardare.

Opzioni
Per le imbarcazioni ci sono molti tipi di prue e di poppe, e ci sono più varietà di poppe che di prue. Ecco alcuni esempi di specchi di poppa e di prue dal mondo reale affiancate dall'analogo prodotto della macro:

Poppa Sheer

La poppa quadra è probabilmente la più comune, è utilizzata per imbarcazioni di qualsiasi dimensione, dalle navi commerciali fino alle barche a remi.


 * lo specchio di poppa XY deve essere il più vicino possibile all'ultima sezione verso la poppa.

Poppa Sugar-Scoop

È probabile che si trovi su una barca a vela, è un prodotto studiato per massimizzare la lunghezza della linea di galleggiamento per beneficiare delle regole sulle classi nelle competizioni a vela.


 * posizionare le ultime 2 sezioni il più vicino possibile alla poppa, poi ruotare l'ultima sezione di poppa di un angolo di 45 gradi (o di quanto è necessario) intorno all'asse X

Poppa a canoa

Si trova su tutti i formati di natanti, a motore e a vela, da diporto e commerciali.


 * posizionare le ultime 2 sezioni il più vicino possibile alla poppa, poi ruotare l'ultima sezione di poppa di un angolo di 45 gradi (o di quanto è necessario) intorno all'asse X

Prua normale

Ci sono molte meno varietà di forme di prua che non di poppe:

Prua Trireme

Anche se negli ultimi 2 millenni non si vede molto spesso, in passato, questa era il profilo definitivo della prua per le navi belliche:


 * per ottenere una forma corretta la polilinea per la prua deve essere disegnata dal basso verso l'alto, questo significa che nello schizzo deve andare da destra verso sinistra

File di esempio
Questi file contengono gli schizzi con i dati campione da utilizzare con la macro, e sono soprattutto i modelli per le schermate riprodotte nella precedente sezione Opzioni. I file funzionano con la Macro, quindi possono essere scaricati e riprodotti per adattarli alle proprie specifiche esigenze. Il prefisso di 5x3 (ad esempio) significa che il modello è dotato di 5 sezioni eci sono 3 segmenti di linea per ogni schizzo


 * 3x3 scafo con il numero minimo di schizzi (prua, una sezione, specchio di poppa) e 3 segmenti di linea in ogni schizzo
 * 5x3 con lo specchio di poppa quadro
 * 5x3 con lo specchio di poppa sugar scoop
 * 5x3 con lo specchio di poppa canoa
 * 5x3 con la prua trireme
 * 12x3 barca a vela

Osservazioni

 * quasi tutti gli esempi di questa pagina sono generati usando solo 3 segmenti per definire il lato dello scafo e questo gli conferisce un aspetto molto sfaccettato, aumentando il numero di segmenti in ciascun schizzo si genera una superficie più liscia che aumenta il realsismo
 * non fa chiglie, pinne o timoni, in altre parole, non fa nulla dell'area bagnata
 * non fa prue quadrate come spintori o chiatte trainate
 * non fa sommergibili (anche se fa la metà inferiore di un sottomarino)

Problemi noti
Per generare sezioni scafo dagli schizzi viene utilizzata la funzione 'Superficie rigata' di FreeCAD. A volte può generare un risultato sbagliato e visualizzare una grattugia come superficie invece di una superficie liscia. Questo in genere si verifica quando i disegni sono ruotati come, ad esempio, quando si modella una poppa Sugar Scoop. Questo può capitare anche inclinando un specchio di poppa quadro. Se succede questo, in genere avviene nei due modelli mezzo-scafo oppure nel modello dello scafo completo - sembra che non si verifichi mai in tutti e tre i modelli dello stesso scafo. Inoltre, di solito, succede solo all'estremità di prua o di poppa. Se capita in una sezione nel mezzo della barca è molto probabile che uno degli schizzi sia stato redatto nella direzione sbagliata (cioè o con sequenza casuale o dall'alto verso il basso mentre invece tutte le linee devono essere tracciate dal basso verso l'alto)

Di solito, si può correggere la distorsione nel seguente modo:
 * nella scheda Modello della vista combinata, fare clic sull'elemento difettoso per selezionarlo, e il segmento difettoso appare evidenziato sul display
 * selezionare la scheda dati alla fine della Vista combinata, la parte inferiore della finestra contiene una etichetta "Ruled Surface" con il solo parametro 'Orientation'
 * a destra c'è un menu a comparsa con i valori 'Automatic', 'Forward', 'Reversed', che inizialmente è impostato su 'Automatic'
 * provare una delle altre impostazioni (ricordando che il segmento difettoso deve ancora essere selezionata nella parte superiore della Vista combinata) e di solito questo corregge il problema

La seguente schermata mostra la parte dello schermo interessata:



Future possibilità
- per ora questo è solo un'idea, ma si otterrebbe una superficie molto più liscia nella parte verticale, mentre la superficie orizzontale continuerebbe ad essere sfaccettata come lo è ora - un obiettivo iniziale, ma la fattibilità non è stata verificata - con l'attuale sistema la chiglia può essere modellata come un mezzo scafo indipendente e poi montata sul fondo dello scafo principale; però questo non riguarda i timoni e le pinne
 * nelle sezioni sostituire i segmenti con linee curve
 * integrazione la macro con l'ambiente Draft per produrre i disegni dei modelli
 * gestire chiglie, timoni e pinne

Glossary
As with any ancient and practiced trade, a rich and sometimes confusing vocabulary has developed around ships, boats and nautical practices. In describing this macro it is both awkward and inefficient to describe the process without using the correct and accurate terms. The obvious problem is that the average lay person will be unfamiliar with such terminology, hence this vocabulary:

Links

 * Half Hull Model Ship (Wikipedia)
 * Why Half Hulls (Maritime Half Hull Ship Models and Nautical Art website)
 * Traditional Model Yacht Design (US Vintage Model Yacht Group)

Script
This code is running bug free. But due to the large range of possible inputs it may fail for some inputs. If so please report it.