Il Bar dell'Ingegneria

rilevo stanze.xls modificato

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

    Advanced Member

    Group
    Member
    Posts
    3,345
    Reputation
    +213

    Status
    Offline
    cercando sul web è possibile scaricare un foglio di calcolo chiamato "rilievo stanze.xls" creato da gino di ruzza che consente di compensare le misure rilevate in sito di uno spazio quadrilatero non regolare (tipicamente una stanza di un fabbricato in muratura) fornendo le misure dei lati e delle diagonali.

    il foglio incorpora una macro, chiamata "crea dxf", scritta da afazio, per la generazione del file dxf così da avere il disegno già bello e pronto.

    la macro (nella versione del foglio che ho io, ma anche nella versione del foglio scaricabile da internet) contiene un bug che si attiva quando si cambia la scala di disegno del dxf.

    le righe di codice incriminate sono le seguenti:

    CODICE
    xx = CoOrdinate(contatore, 2)
    xy = CoOrdinate(contatore, 3) / sca


    ne risulta che l'ordinata viene effettivamente scalata, mentre l'ascissa no.

    per correggere l'errore è sufficiente modificare il codice in questo modo:

    CODICE
    xx = CoOrdinate(contatore, 2) / sca
    xy = CoOrdinate(contatore, 3) / sca


    di seguito il file già corretto.
    File Allegato
    Rilievo_Stanze_mod.xls
    (Number of downloads: 255)

     
    Top
    .
  2.     +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    32
    Reputation
    +2

    Status
    Offline
    Aggiungere PtrSafe nel caso lo chieda su office a 64 bit
     
    Top
    .
  3.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    La procedura che Gino Di Ruzza ha importato nel suo foglio, io la avevo scritta relativamente al tracciamento dei diagrammi delle sollecitazioni per una travata.
    In quel caso avevo previsto la possibilità di scalare i valori delle sollecitazioni applicando un fattore di scala proprio su essi. Gino l'ha copiata non tenendo conto della specificità della procedura e volendo far disegnare la pianta di una stanza avrebbe dovuto applicare la scala anche alle ascisse.

    A questo punto, per rendere più generica la macro si potrebbe pensare di introdurre due scale diverse una per le ascisse e l'altra per le ordinate e nel caso del disegno di una piantina imporre le due scale uguali tra loro.

    Il foglio dal quale Di Ruzza ha importato la macro, lo avevo pubblicato sul sito di lexatus:
    Excel to Dxf
     
    Top
    .
  4.     +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    4
    Reputation
    0

    Status
    Offline
    Buongiorno.
    Per chi è a digiuno di programmazione, c'è un'anima buona che modifichi il file per sistemi a 64 bit ?
    Grazie.
     
    Top
    .
  5.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,345
    Reputation
    +213

    Status
    Offline
    CITAZIONE (rossa2 @ 20/1/2022, 14:58) 
    Per chi è a digiuno di programmazione, c'è un'anima buona che modifichi il file per sistemi a 64 bit ?

    non funziona?
     
    Top
    .
  6.     +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    4
    Reputation
    0

    Status
    Offline
    Buongiorno.
    Purtroppo non sono capace di farlo funzionare perchè continua a segnalarmi che non va bene su sistemi a 64bit.
    Saluti.
     
    Top
    .
  7.     +1   -1
     
    .
    Avatar

    Member

    Group
    Member
    Posts
    462
    Reputation
    +34

    Status
    Offline
    CITAZIONE (rossa2 @ 25/2/2022, 18:47) 
    Buongiorno.
    Purtroppo non sono capace di farlo funzionare perchè continua a segnalarmi che non va bene su sistemi a 64bit.
    Saluti.

    Generalmente, occorre mettere nelle macro un ptr safe:

    https://www.forumexcel.it/forum/threads/es...c-a-64bit.1235/
     
    Top
    .
  8.     +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    4
    Reputation
    0

    Status
    Offline
    Buongiorno.
    Ti ringrazio x l'interessamento, ma essendo completamente a digiuno di programmazione, mi dà altre errori, chiedendo il debug ....
    Sarei grato a chi volesse postare il file già adattato, altrimenti recupererò un vecchio PC a 32 bt.
    Cordiali saluti a tutti.
     
    Top
    .
  9.     +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    1
    Reputation
    0

    Status
    Offline
    Aperto con libreoffice .... e funziona!
     
    Top
    .
  10.     +1   +1   -1
     
    .
    Avatar

    Junior Member

    Group
    Member
    Posts
    2
    Reputation
    +1

    Status
    Offline
    Salve, sperando che non sia cosa sgradita per l'autore, ho aggiunto al file la compensazione
    completa (ossia vengono ritenute tutte le misure da compensare e non solo le due diagonali).
    Sul layer spento "COMPENSAZIONE_COMPLETA" è presente la poligonale relativa di colore verde.
    File Allegato
    Rilievo_Stanze_mod1.zip
    (Number of downloads: 54)

     
    Top
    .
  11.     +2   +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    3,345
    Reputation
    +213

    Status
    Offline
    CITAZIONE (JONNY78 @ 4/9/2022, 15:53) 
    Salve, sperando che non sia cosa sgradita per l'autore, ho aggiunto al file la compensazione completa (ossia vengono ritenute tutte le misure da compensare e non solo le due diagonali).

    ho scaricato e provato le modifiche effettuate da jonny78. inserisco qui di seguito la schermata della prova (sono misure reali, effettivamente rilevate in una stanza fuori squadro).

    jpg

    in origine il foglio era costruito per l'inserimento di misure in metri. modificando la scala di rappresentazione, lo utilizzo inserendo le misure in cm (è stato così che mi sono accorto dell'errore sulla scala, già segnalato in apertura del thread).

    già questo vuol dire che i decimali che leggiamo sono frazioni di cm (fino al centesimo di cm).

    mi aspetto anche che le misure delle pareti siano pressoché esatte (rilevate con il misuratore laser) e le misure delle diagonali debbano - in qualche misura - crescere perché la dimensione "fisica" dello strumento non mi consente di far partire la misura esattamente dal punto più interno dell'angolo. e in effetti questo è quello che avviene con entrambe le compensazioni.

    tuttavia, voler compensare - a posteriori - tutte le misure significa voler attribuire a tutte le misure lo stesso grado di incertezza, cosa che in realtà non è. le misure delle diagonali servono solo perché altrimenti il quadrilatero sarebbe articolato e non costruibile in maniera univoca ma il grado di affidabilità delle misure delle pareti (ad esempio, perché in questo caso è più facile che la misura venga presa in un piano orizzontale rispetto alla misura di una diagonale) è sicuramente maggiore.

    non solo. per osservazione diretta, mettendo lo strumento nell'angolo tra 2 pareti, si può verificare che - per la dimensione fisica dello strumento - si perdono all'incirca 2 cm. se "fittiziamente" aggiungo questo 2 cm alle diagonali, ecco cosa trovo:

    jpg

    in pratica, la compensazione di tutte le misure aggiungendo alle diagonali la quantità che effettivamente viene perduta in fase di misurazione (seconda colonna della seconda figura) mi riporta quasi esattamente (a meno di mm e decimi di mm) alla compensazione del foglio originario nel quale vengono inserite le misure "lette" sullo strumento e senza manipolazioni di sorta (prima colonna della prima figura).

    concludo quindi che jonny78 ha fatto un lavoro encomiabile e che gli va riconosciuto e dunque per questo lo ringrazio, ma che trova stretta applicazione quando le misure da compensare siano effettivamente tutte affette dalla stessa incertezza (caso che può verificarsi se misuro, ad esempio, un cortile oppure un terrazzo) potendo essere "approssimato" - a fini pratici - con il foglio originario quando misuro spazi interni delimitati da pareti. fermo restando che è possibile in ogni caso utilizzarlo sempre.
     
    Top
    .
  12.     +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Member
    Posts
    2,939
    Reputation
    +187

    Status
    Offline
    Se sai come manipolare gli algoritmi è possibile inserire un "peso" ad ogni misura.

    Questo è quello che si fa usualmente nella compensazioni di reti topografiche, dove hai a che fare con misure di distanze lunghe, corte (affette quindi da differente precisione), angoli.

    Edited by zax2013 - 19/9/2022, 11:18
     
    Top
    .
  13.     +1   +1   -1
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    8,163
    Reputation
    +294

    Status
    Offline
    Questo è uno degli esempi che molto più spesso vorrei vedere in internet.
    Io scrivo un codice dedicato a qualcosa, e lo distribuisco pubblicamente senza restrizioni di sorta.
    Qualcun altro intravede la possibilità di poterlo sfruttare per altri scopi, ma non si accorge di un possibile errore, non tanto nel codice ma nell'utilizzo.
    Altro utente prova e riprova e si accorge del bug aggiunto. Lo corregge e ripubblica liberamente.
    altro utente vede la possibilità di poter applicare la compensazione completa e pubblica altro foglio libero con codice liberamente visualizzabile e modificabile.
    Se io non avessi reso leggibile il mio codice... chissà...
    Grazie.
     
    Top
    .
12 replies since 27/9/2019, 12:56   2284 views
  Share  
.