HOME OGGETTI 3D LIBRI CORSI TUTORIAL FORUM SHOP CONTATTI   LOGIN









Autore Topic: Problemi con IF  (Letto 2499 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

martone

  • Junior
    ...frequento ed imparo in fretta
  • *
  • Post: 416
Problemi con IF
« il: 18 Maggio 2016, 12:35 »
Ciao ragazzi, da tanto che non mi faccio vivo...
Torno con un piccolo problema con un perno che uso tanto e che ho deciso di costruire in GDL.
Tutto molto semplice, però sto avendo problemi con una serie di IF (non sono per niente bravo con il GDL)
Mi spiego, ho un perno con due dimensioni, M5 ed M6. Le lunghezze sono standard, ma diverse tra le due tipologie. M5 ha lunghezze di 10, 16, 25, mentre M6 12, 16, 25, 30, 35, 40. Con la “sfilza” di IF che ho usato, riesco solo a modificare M6 e non M5 (che è bloccato).
Mi sapete dire dov’è l’errore e se esiste un metodo più pratico rispetto a quello che ho usato io?


Grazie, allego il file
G4 867 1.5 Gb

G4 667 512 Mb

Un Mac, cos'altro

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Problemi con IF
« Risposta #1 il: 19 Maggio 2016, 08:30 »
premetto che... seguire gli IF altrui è sempre complicato, perché ognuno ha il proprio stile di programmazione e non esiste un solo modo "giusto" per arrivare al risultato desiderato.
C'è anche un errore (ininfluente) nella lunghezza di LM6/30.

Il punto che ti impedisce di ottenere ciò che vuoi è che i vari controlli vengono eseguiti SEMPRE (e nell'ordine in cui sono scritti) anche se il parametro di controllo è nascosto.
Faccio un esempio.
Se selezioni "Con supporto", LM6 viene nascosto, ma ha COMUNQUE un valore associato.  Quando nello script fai i controlli, prima troverai il valore da assegnare alla variabile "luv" in base al parametro LM6S, poi il controllo continua e trova ANCHE un valore "vero" per LM6, e la variabile "luv" assume un altro valore.

Una soluzione può essere quella di mettere tutti questi controlli dentro il primo blocco di controlli. Quando nascondi il parametro LM6S, prima di ELSE, metti tutti gli "IF LM6 ... ENDIF".

Comunque mi pare si potrebbe semplificare notevolmente tutto lo script, usando valori numerici anziché di testo, per LM5, LM6 e LM6S (togliendo gli apici nelle istruzioni VALUES e usando direttamente il nome del parametro nelle istruzioni CYLIND.
-Roberto Corona-
archiradar  Staff



martone

  • Junior
    ...frequento ed imparo in fretta
  • *
  • Post: 416
Re:Problemi con IF
« Risposta #2 il: 19 Maggio 2016, 11:45 »
Grazie per i consigli, adesso funziona.
Ho letto sulla guida (ma non ho capito) che si possono nascondere [hideparameter] anche parte dei valori [Values], sai dirmi come fare?


Citazione
Comunque mi pare si potrebbe semplificare notevolmente tutto lo script, usando valori numerici anziché di testo, per LM5, LM6 e LM6S (togliendo gli apici nelle istruzioni VALUES e usando direttamente il nome del parametro nelle istruzioni CYLIND
come faresti, che non ho capito?

Grazie
G4 867 1.5 Gb

G4 667 512 Mb

Un Mac, cos'altro

martone

  • Junior
    ...frequento ed imparo in fretta
  • *
  • Post: 416
Re:Problemi con IF
« Risposta #3 il: 19 Maggio 2016, 12:14 »
Non so se è quello che intendevi tu, ma ho ridotto di molto il codice, finisco e poi lo posto.
Ho aggiunto il valore dello spessore della manopola che è solo informativo.
Mi piacerebbe avere gli hotspot nella vista 2D anche all’interno della manopola,un consiglio?


Grazie
« Ultima modifica: 19 Maggio 2016, 12:45 da martone »
G4 867 1.5 Gb

G4 667 512 Mb

Un Mac, cos'altro

ZioBob

  • Che pacchia un forum senza spocchia!
  • ADMIN
    ...ho creato questo spazio e lo amo
  • *
  • Post: 5.099
Re:Problemi con IF
« Risposta #4 il: 19 Maggio 2016, 14:35 »
Se cambi il tipo di parametro da "testo" a "intero", per i parametri IFM e INFO, puoi usare questo testo Master:

Codice: [Seleziona]
Values "tipo" 'Con Supporto', 'Senza Supporto'
Values "Metrico"  'M5', 'M6', 'M8'
LOCK "INFO"

!------------------------M5--------------------!
If Metrico = 'M5' Then
M  = 2.5
K  = 4
D2 = 10
D3 = 5
H  = 11.5 - K
Values "IFM" 10, 16, 25
PARAMETERS INFO = 4
endif

!------------------------M6--------------------!
If Metrico = 'M6' Then
M  = 3
K  = 5
D2 = 12
D3 = 6
H  = 15 - K
Values "IFM" 12, 16, 25, 30, 35, 40
PARAMETERS INFO = 5
endif


!------------------------M8--------------------!
If Metrico = 'M8' Then
M  = 4
K  = 6
D2 = 15
D3 = 6.5
H  = 18 - K
Values "IFM" 16, 25, 30, 35, 40
PARAMETERS INFO = 6
endif

!----------------------------------------------!
luv = IFM - 0.5

Puoi anche eliminare la variabile K, e usare direttamente INFO nello script Testo GDL 3D.

Per il 2D, la posizione degli hotspot andrebbe calcolata con funzioni trigonometriche, in base alla rotazione 'ruotax'
-Roberto Corona-
archiradar  Staff



martone

  • Junior
    ...frequento ed imparo in fretta
  • *
  • Post: 416
[RISOLTO] Problemi con IF
« Risposta #5 il: 19 Maggio 2016, 16:24 »
Wow ancora più semplice.


Grazie
G4 867 1.5 Gb

G4 667 512 Mb

Un Mac, cos'altro