Il Bar dell'Ingegneria

Progetto Sovratensioni e tracciamento ISOBARE in autocad

« Older   Newer »
 
  Share  
.
  1.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    Vediamo infine la sezione dedicata alla definizione delle isobare.
    In questa fase, per essere spedito, penserei di suddividere il range tra tensione minima e tensione massima in un numero definito di curve. Ci serve quindi conoscere il valori minimi e massimi delle tensioni verticali indotte dai carichi. Definiamo due variabili globali e dedichiamo due etichette da mettere nella cornice delle isobare.

    Le due variabili devono essere definite nella sezione pubblica del codice:

    Public siGma_min As Double
    Public siGma_max As Double


    la loro determinazione possiamo farla all'interno del codice che genera i punti ed in particolare in questa parte di codice:

    siGma_min = 100000
    siGma_max = -100000
    For i = 0 To NPointX
    For j = 0 To NPointZ
    For k = 1 To Num_tot_caRichi
    Quote(i, j) = Quote(i, j) + _
    sigmaZ(Ascisse(i), orDinate(j), _
    Carichi(k).xi, Carichi(k).xf, Carichi(k).qi, Carichi(k).qf, Carichi(k).z0)
    Next
    If Quote(i, j) > siGma_max Then siGma_max = Quote(i, j)
    If Quote(i, j) < siGma_min Then siGma_min = Quote(i, j)

    Next j
    Next i




    Ho pensato di impostare la sezione isobare come da immagine che segue:

    livelli

    Ho aggiunto altra cornice destinata alla gestione ed al disegno delle isobare sul foglio dwg

    Edited by afazio - 4/8/2012, 18:56
     
    Top
    .
  2.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    All'interno della cornice delle isobare ho inserito:

    una label NPunti1 che conterrà il numero complessivo dei punti della griglia
    una label PSigma_min con il valore minimo della sigma verticale
    una label PSigma_max con il valore massimo della sigma verticale

    un campo editabile N_isobare destinato ad acquisire il numero totale dei livelli
    a questo campo applico il filtro solo_numeri() ed ilcontrollo che sia non minore di 2
    CODICE
    Private Sub N_isobare_Change()
       N_isobare.Text = solo_numeri(N_isobare.Text)
       If Val(N_isobare.Value) = 0 Then
           NLivelli = 2
           N_isobare.Text = NLivelli
       End If
    End Sub





    un pulsante GeneraLivelli alla pressione del quale si deve riempire il vettore colonna contenente i valori dei livelli da disegnare.

    Mi serve quindi definire ancora le seguenti variabili pubbliche:

    Public Livelli() As Double
    Public NLivelli As Integer



    La generazione dei livelli viene delegata alla seguente sub:

    CODICE
    Sub generoLivelli(ByVal qmin As Double, ByVal qmax As Double, ByVal divisioni As Integer)
    Dim delta As Double
    Dim conta As Integer

    ReDim Livelli(0 To divisioni - 1)
    delta = (qmax - qmin) / (divisioni - 1)
    For count = 1 To divisioni
       Livelli(count - 1) = qmin + (count - 1) * delta
    Next
    End Sub


    mentre alla pressione del pulsante "genera livelli" associamo il codice:

    CODICE
    Private Sub GeneraLivelli_Click()

    NLivelli = Val(N_isobare.Value)

    Call generoLivelli(siGma_min, siGma_max, NLivelli)

    End Sub


    Rimane solo il codice finale che ci disegna le isobare

    Al pulsante "disegna isobare" associamo il codice:

    CODICE
    Private Sub GeneraIsobare_Click()

    Call conrec(Quote(), Ascisse(), orDinate(), NLivelli, Livelli(), 0, NPointX, 0, NPointZ)

    End Sub


    Finito
     
    Top
    .
  3.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    Eccolo

    questa immagine mostra il risultato che si ottiene facendo girare con dati corretti la macro

    eccolo
    altra immagine ottenuta con dati diversi

    eccolo01

    e con questo penso proprio di aver raggiunto e centrato lo scopo che mi ero prefisso.

    Noterete che:
    - il diagramma delle isobare è riportato rovesciato
    - che non c'e' alcuna gestione dei colori
    - che non sono riportate etichette delle isobare
    - che le curve non sono polilinee ma una serie di segmenti
    - che il diagramma è disegnato sempre a partire dall'origine del sistema di riferimento di Autocad.
    - che non c'e' alcuna gestione degli errori a partire dalla fase di discretizzazione del sottosuolo e della costruzione delle isobare.

    Tutto cio' potrà essere oggetto di modifica correzione ed ampliamento da parte di chiunque lo vorrà.
    Per quel che mi riguarda considero concluso questo 3d con la pubblicazione del progetto dvb (nel prossimo post) rimanendo, tuttavia, sempre aperto per commenti e discussioni.

    Enjoy

    Edited by afazio - 4/8/2012, 15:27
     
    Top
    .
  4.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    ecco il link al mio box con l'ultima versione del progetto

    https://www.box.com/s/a53d35dbd3adc7ddb081

    Chiunque è libero di prelevarlo (finchè non lo tolgo) modificarlo a suo piacimento, mantenendo ovviamente le citazioni a quelle parti di codice che non sono mie (la sub per il calcolo delle curve di livello). E' gradita eventuale comunicazione delle modifiche ed anche la pubblicazione in queste pagine di progetti che si basano sul codice qui prelevato.

    Una sola notazione: con la pubblicazione del presente codice non mi sento obbligato a rispondere di eventuali errori o di malfunzionamenti o a richieste di chiarimenti su qualche parte del codice. Lo faro' solo se ne avro' voglia e possibilità.

    Saluti

    Edited by afazio - 4/8/2012, 20:48
     
    Top
    .
  5.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    un esempio

    eccolo02
     
    Top
    .
  6.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    nuova versione:

    https://www.box.com/s/834d058c391edda5d315
     
    Top
    .
  7.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    Il link da cui scaricare la nuova versione del progetto "Isobare in Autocad"

    Isobare v.5.dvb
     
    Top
    .
  8.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    Il foglio del calcolo e disegno delle ISOBARE in excel RIVIVE
    -----
    Dopo sette anni per sopravvenute necessità di lavoro, ho rimesso mano al foglio excel che avevo perduto a causa dei cambiamenti di sistemi operativi e di versioni di excel.
    Alla luce delle conoscenze che nel frattempo ho acquisito, dopo un giorno intero di dibattimenti tra librerie e codice, sono finalmente riuscito a far rivivere quel foglio.
    ---
    Adesso la questione consiste nel riuscire ad entrare nella logica di programmazione adottata ai tempi in cui composi il foglio, per adattarlo alle nuove esigenze.
    ---
    Se ne avrò tempo e voglia ne parlerò qui al forum.
     
    Top
    .
37 replies since 30/7/2012, 22:08   4646 views
  Share  
.