...
Io ti chiedevo infromazioni su come fai (a grandi linee naturalmente) a disegnare un grafico, oppure la sezione con i ferri e le forze su di un form in VBA.
Poi altro domandone, se hai mai avuo a ceh fare co un vero e propio amabinete 3D, io vorrei importare i modeli che facciamo con strauss e poi per esempio inserire le lunghezze corrette per il calcolo dell'instabilità in una struttura d'acciaio. Però brancolo letteralmente nel buio per risucire a rappresentare quello che le macro già fanno.Ciao nuvolaengineer
Io programmo in VB6.
per inserire il disegno di una sezione occorre un controllo. Io utilizzo PictureBox.
A tutti i controlli è opportuno dare un nome personalizzato perchè, in caso di molti controlli, si sa a quale si fa fa riferimento.
In questo caso il mio controllo è rinominato in PictureBoxD (Disegno).
Supponimo di dover disegnare un rettangolo di lato B e di altezza H.
- si stabilisce la dimensione massima del disegno Ld1 = massimo di B o di H moltiplicato 1,5 per non disegnare sui bordi
- il codice per disegnare gli assi X e Y e un rettangolo è:
Sub DisegnaPlinto()
B=30
H=50
Ld = 1.5*50 'Lunghezza massima disegnabile
PictureD.Cls ' cancella eventuali disegni precedenti
PictureD.FontName = "ms serif" 'Imposta il tipo di carattere.
PictureD.FontSize = 7 'Impostare la dimensione del tipo di carattere
PictureD.Scale (-Ld / 2 + B / 2, Ld / 2 - H / 2)-(Ld * 3 / 2 + B / 2, -Ld / 2 - H / 2)
'disegna assi
PictureD.DrawWidth = 1
PictureD.DrawStyle = 2 'linea tratteggiata
PictureD.ForeColor = &H0& 'nero
PictureD.Line (-ud1 * 2, 0)-(A + ud1 * 5, 0)
PictureD.Print "X"
PictureD.Line (0, 2 * ud1)-(0, -B - ud1 *
PictureD.Print "Y"
'Disegna sezione rettangolare
PictureD.DrawWidth = 2
PictureD.ForeColor = &HC00000 'colore blu
PictureD.DrawStyle = 0
PictureD.Line (0, 0)-(A, 0)
PictureD.Line -(A, -B)
PictureD.Line -(0, -B)
PictureD.Line -(0, 0)
End Sub
Analogamente per disegnare i ferri si disegnano dei cerchi pieni nelle coordinate volute.
I grafici si disegano come tratti di linea a piccoli step.
In pratica col comando Line si disegna pressochè tutto.
Ma, attenzione, quello che si ottinene è una immagine piana di tratti di linea, di cerchi e di testi.
Se, come chiedi tu, vuoi ottenere una immagine tridimensionale della struttura, allora occorre un controllo diverso.
Il controllo più usato adesso il DirectX9. Con questo controllo puoi ruotare l'immagine, ingrandirla, rimpicciolirla, ecc.
Ma questo è un programma nelk programma, nel senso che vanno create matrici di traslazione, matrici di rotazioe e c'è un manuale alto 15 cm per imparare ad usare quel controllo.
E' evidente che questa non è roba amatoriale, ma solo per gente che lo fa di mestiere.
A complicare le cose c'è l'aggiornamento di VB6 a VB2010. Questo non è un semplice aggiornamento perchè le istruzioni di grafica che ti ho appena indicato sono state tutte cambiate.
Quello che si vuole fare è di rendere il Visul basic compatibile e alternativo al C.
Così il Visual Basic ha perso il carattere di semplicità che aveva un tempo per diventare sì uno strumento professionale, ma per contro, talmente complesso da scoraggiare qualsiasi principiante.
Ciao, a tutti
Alla prossima