Impossibile eseguire la logica booleana utilizzando lo script jmp sulla formula della tabellaCiao,
Sto cercando di eseguire un semplice script che selezionerà e quindi nasconderà ed escluderà i punti che sono maggiori di 100 mm in una distanza radiale dal centro.
Per semplificare il debug, l'ho diviso in due script: il primo genera una colonna con la formula della distanza radiale Radial = (x^2 + y^2)^(1/2) e il secondo valuta questa formula, selezionando e nascondendo le righe dove Radiale > 100.
Purtroppo questo non funziona. Per qualche strana ragione, la valutazione funziona solo su questa formula fino a un certo valore. Radiale > (qualsiasi oltre 30) seleziona tutte le righe.
Vedo due soluzioni:
1) Scrivi i valori nella colonna Radiale, non la formula stessa. (I valori vengono valutati correttamente, la formula no). Non sono sicuro di come si faccia.
2) Comprendere e correggere il problema in modo che la formula possa essere valutata rispetto a un valore maggiore di 30.
Sarebbe accettabile una risposta di script o una spiegazione interattiva. Vorrei risolvere questo problema e imparare da esso.
Grazie!
dave
// script for creating the Radial column<BR />dt1 = Current Data Table ();
dt1 << New Column( "Radial", Formula ((X coordinate^2 + Y coordinate^2)^(1/2)));<BR /><BR />// script for evaluating the Radial formula<BR />dt =Current Data Table();<BR />dt << Clear Row States; <BR />dt << Select where(Radial < 100);<BR />dt << hide and exclude;<BR />
ScriptingRe: Impossibile eseguire la logica booleana utilizzando lo script jmp sulla formula della tabellascript per la creazione della colonna Radiale
dt1 = Current Data Table ();
dt1 << Clear Row States;
dt1 << New Column( "Radial", Formula ((X coordinate^2 + Y coordinate^2)^(1/2)));
script per valutare la formula Radiale
dt =Current Data Table();
dt << Clear Row States;
dt << Select where(Radial < 100);
dt << hide and exclude;
Re: Impossibile eseguire la logica booleana utilizzando lo script jmp sulla formula della tabellaTemo di avere problemi a riprodurre qualsiasi problema qui. Ecco lo script che ho usato per testare.
dt1 = New Table( "Community 416651 Select Where",
Add Rows( 1000000 ),
New Column( "x coordinate",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Sequence( 5, 100, 5 ) ),
Set Selected
),
New Column( "y coordinate",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Sequence( 5, 100, 5, 20 ) ),
)
);
dt1 << New Column( "Radial",
Formula(
(X coordinate ^ 2 + Y coordinate ^ 2) ^ (1 / 2)
)
);
dt1 << Select where( Radial < 60 );
Quindi, avremo bisogno di qualche dettaglio in più sul tuo script e sulla tua tabella di dati.
Quanto è grande la tua tabella dati? Cos'altro sta facendo la tua sceneggiatura?
Re: Impossibile eseguire la logica booleana utilizzando lo script jmp sulla formula della tabellaGrazie per aver risposto Jeff.
Incollare l'ultima riga del tuo script nel mio non ha risolto il problema. Tuttavia, sono stato in grado di trovare una soluzione cambiando il nome della colonna in "Radiale 1" e aggiungendo una riga con Eval Formula alla fine. Non sono sicuro del motivo per cui funziona. La tabella dati è di circa 1.300 righe con 15 colonne, ogni numero ha una larghezza da 10 a 12.
I seguenti due script funzionano. Li incollo nella loro interezza. Le altre linee valutano la profondità e la distribuzione della fossa.
Qualche idea sul perché le modifiche hanno funzionato? Sono stato in questo per la maggior parte della giornata.
Script 1: crea le colonne "Solo box" e "Radiale 1".
dt1 = Current Data Table ();
dt1 << Clear Row States;
dt1 << New Column( "Pits Only", Formula (If( :Name( "Height (mm)" ) <= 0, :Name( "Height (mm)"), 0 )) );
dt1 << New Column( "Radial 1", Formula ((X coordinate^2 + Y coordinate^2)^(1/2)));
dt1 << Eval Formula;
obj = dt1 << Distribution( Column( :Pits Only), Horizontal Layout( 1 ), Count Axis);
Script 2: nascondi ed escludi righe con Solo buche > 10 o Radiale 1 > 100 o Radiale 1 < 30
dt =Current Data Table();
dt << Clear Row States;
win = New Window( "Feature Depth" , <<MODAL> 100) | (Radial 1< 30) | (Pits Only > mf));
dt << hide and exclude;</MODAL>