• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

&model_name とリビジョンインデックス

  • Thread starter Thread starter Daniele-san
  • Start date Start date

Daniele-san

Guest
buongiorno a tutti!
ho provato a fare una ricerca ma non ho trovato nulla che potesse aiutarmi in ciò che sto per indicarvi:
premetto che sto rifacendo un nuovo cartiglio.
solitamente utilizziamo il codice disegno (comprensivo di indice di revisione nelle ultime due cifre) per nominare il file drw e la sua parte o assieme prt o asm quindi nella stringa &model_name ci sarà il codice comprensivo di indice di revisione
es: nella tabella codice disegno attualmente ho: mm000-000-00
sarebbe possibile scompattarlo per poter compilare (sempre in modo automatico) due singole tabelle del catiglio?
es: nella tabella codice disegno vorrei mm000-000 e nella tabella revisone 00
che ne pensate?
 
ciao

a livello di relazioni puoi usare questo comando per creare nuovi parametri es. cod_diseg = extract(rel_model_name,1,7).
se hai un codice con un numero fisso di caratteri è anche un metodo semplice.
 
ciao dani-3d
grazie per l'intervento!
solitamente il codice del disegno ha sempre un numero fisso di caratteri alfanumerici sia per una parte che per un assieme
volevo un chiarimento sulla relazione che hai indicato:
cod_diseg = extract(rel_model_name,1,7)

cosa indicano i numeri e le virgole dopo rel_model_name ?

nel caso in cui si trattasse di un assieme (stesa tipologia di codice disegno della parte) con la tabella lista parti dove attualmente ho una colonna &asm.mbr.name come si comporta?
anche in questo caso devo aggiungere, suppongo, una colonna in cui viene indicato l'indice di revisione...in che modo?
la faccenda si complica
ciao



ciao

a livello di relazioni puoi usare questo comando per creare nuovi parametri es. cod_diseg = extract(rel_model_name,1,7).
se hai un codice con un numero fisso di caratteri è anche un metodo semplice.
 
altri comandi per manipolare le stringhe:

string_length([parameter name])
returns the lengthin charactersof the string contained by [parameter name]

itos([parameter name])
converts an integer value to a string. nonintegers are rounded off. zero values are returned as empty strings.

search([parameter name], [substring])
returns the position of [substring] within the string contained by [parameter name]. returns zero if not found.

infine la sintassi del comando che ti interessa:

extract
([parameter name], [position], [length]) returns a string of [length] characters from the string contained in [parameter name], starting at [position].
 
ciao dani-3d
grazie per l'intervento!
solitamente il codice del disegno ha sempre un numero fisso di caratteri alfanumerici sia per una parte che per un assieme
volevo un chiarimento sulla relazione che hai indicato:
cod_diseg = extract(rel_model_name,1,7)

cosa indicano i numeri e le virgole dopo rel_model_name ?

nel caso in cui si trattasse di un assieme (stesa tipologia di codice disegno della parte) con la tabella lista parti dove attualmente ho una colonna &asm.mbr.name come si comporta?
anche in questo caso devo aggiungere, suppongo, una colonna in cui viene indicato l'indice di revisione...in che modo?
la faccenda si complica
ciao

il primo numero indica la posizione di partenza della stringa ed il secondo la lunghezza.
per la revisione puoi creare un nuovo parametro es. rev = extract(rel_model_name,6,2), dove prendi il 6° e 7° carattere.
 
ciao,

oppure

revisione = extract(rel_model_name,((string_length(rel_model_name))-2),3)

che prende gli ultimi n. caratteri.
 
ciao a tutti,
grazie per tutti i suggerimenti, credo che domani farò delle prove sul campo.
volevo avere un ultimo chiarimento...
grazie ad alcuni di voi sono riuscito ad aumatizzare alcuni campi del cartiglio con la seguente relazione:

if revisione_01 == yes
rev01="01"
id01="x"
else
rev01="-"
id01=" "
endif

a questo punto avendo una tabella con il codice di revisione impostato con la stringa:
drawing_rev = extract(rel_model_name,12,2)
posso compilare la relazione in questo modo? :

if drawing_rev == 01
rev01="01"
id01="x"
else
rev01="-"
id01=" "
endif

e la ripeto per tutte le revisioni necessarie compresa la revisione "00"

ciao
 
la prima sensazione è che ... sembra un metodo un po complicato, se ci chiarisci cosa vuoi ottenere ti possiamo dare delle dritte.
 
la prima sensazione è che ... sembra un metodo un po complicato, se ci chiarisci cosa vuoi ottenere ti possiamo dare delle dritte.

ciao dani-3d

effettivamente adesso con la scompattazione del codice disegno non avrei piu bisogno di una tabella revisione da compilare...
ti spiego mettendoti dei commenti sulla relazione:

if revisione_01 == yes !nei parametri indicavo se c'era o no una revisione
rev01="01" !compilavo la riga della revisione nella tabella revisioni, che ho nel formato al di fuori del cartiglio
!dove vanno inserite poi manualmente la descrizione della modifica, la data e l'autore della stessa.
id01="x" !mette una spunta (la "x") in una tabellina revisoni già presenteall'interno nel cartiglio 01 02 03 ...10
else
rev01="-"
id01=" "
endif

potendo scompattare il drawing_name in drawing_code e drawing_rev
posso eliminare la tabella revisioni all'interno del cartiglio eliminando le stringhe colorate di rosso:

if revisione_01 == yes
rev01="01"
id01="x"
else
rev01="-"
id01=" "
endif

ma vorrei anche sostituire la stringa colorata in blu con la seguente:
if drawing_rev == 01

vorrei che alla lettura del drawing_rev che va da 00 a 10
vengano compilate le restanti tabelle in modo opportuno

if drawing_rev == 01
rev01="01"
else
rev01="-"
endif

tale relazione va inserita per ogni indice di revisione che va da 00 a 10
che ne pensi?:redface:
ciao
 
ciao

se non ho capito male potresti fare così:

if revisione_01 == yes
if drawing_rev == 01
rev01="01"
else
rev01="-"
endif

id01="x"
else
rev01="-"
id01=" "
endif

prova ...
 
ciao

se non ho capito male potresti fare così:

if revisione_01 == yes
if drawing_rev == 01
rev01="01"
else
rev01="-"
endif

id01="x"
else
rev01="-"
id01=" "
endif

prova ...

ciao dani-3d

if revisione_01 == yes !vorrei eliminare questa stringa se possibile lasciando invariato il resto

if drawing_rev == 01
rev01="01"
else
rev01="-"
endif

ma ora che ci penso credo non funzioni come vorrei perchè andando a fare una rev 2 o 3 o 4 del disegno avrei...

if drawing_rev == 02
rev02="02"
else
rev02="-"
endif

perderei tutte le compilazioni delle precedenti revisioni perchè non trovando più drawing_rev == 01 mentre credo che lasciando
come hai scritto tu..la stringa
if revisione_01 == yes
sia la cosa migliore ...:confused:
dopo faccio una prova :4410:


invece vorrei eliminare definitivamente la relazione sotto:
id01="x"
else
rev01="-"
id01=" "
endif
 
ciao
ho appena teminato di fare delle prove:

drawing_rev = extract(rel_model_name,12,2)
e
drawing_code = extract(rel_model_name,1,10)

funziona e non avevo dubbi!:finger:


ciò che non va sono le seguenti relazioni
ho fatto due tentativi, nel secondo ho provato a togliere un simbolo "="
if revisione_01 == yes
if drawing_rev == 01
errorlati destro e sinistro incompatibili
rev01="01"
else
rev01="-"
endif

oppure

if revisione_01 == yes
if drawing_rev = 01
errorespressione logica attesa.
rev01="01"
else
rev01="-"
endif
 
ciao
ho appena teminato di fare delle prove:

drawing_rev = extract(rel_model_name,12,2)
e
drawing_code = extract(rel_model_name,1,10)

funziona e non avevo dubbi!:finger:


ciò che non va sono le seguenti relazioni
ho fatto due tentativi, nel secondo ho provato a togliere un simbolo "="
if revisione_01 == yes
if drawing_rev == 01
errorlati destro e sinistro incompatibili
rev01="01"
else
rev01="-"
endif

oppure

if revisione_01 == yes
if drawing_rev = 01
errorespressione logica attesa.
rev01="01"
else
rev01="-"
endif

prova così:

f revisione_01 == yes
if drawing_rev == "01"
rev01="01"
else
rev01="-"
endif
endif
 
hai il lato sinistro stringa e il lato destro numerico, non si possono confrontare.
inoltre mi sembra ci sia un if non chiuso...

se è quello il problema c'è l'istruzione:

itos([parameter name])
converts an integer value to a string. nonintegers are rounded off. zero values are returned as empty strings.

per convertire interi in stringhe.
 
se è quello il problema c'è l'istruzione:

itos([parameter name])
converts an integer value to a string. nonintegers are rounded off. zero values are returned as empty strings.

per convertire interi in stringhe.


ciao painz,
non so se è importante ma drawing_rev deriva da una relazione

drawing_rev = extract(rel_model_name,12,2)
 
prova così:

f revisione_01 == yes
if drawing_rev == "01"
rev01="01"
else
rev01="-"
endif
endif

ciao dani-3d

ho appena fatto una prova, purtroppo il tuo suggerimento di virgolettare lo 01 nella stringa if drawing_rev == "01"
non ha dato esito positivo
 
ciao dani-3d

ho appena fatto una prova, purtroppo il tuo suggerimento di virgolettare lo 01 nella stringa if drawing_rev == "01"
non ha dato esito positivo

così non ci sono errori, prova se il comportamento è quello da te voluto :

Code:
revisione_01=yes

drawing_rev = extract(rel_model_name,11,2)
drawing_code = extract(rel_model_name,1,9)

if revisione_01 == yes
     if drawing_rev == "01"
          rev01="01"
     else
          rev01="-"
     endif
endif
 
così non ci sono errori, prova se il comportamento è quello da te voluto :

Code:
revisione_01=yes

drawing_rev = extract(rel_model_name,11,2)
drawing_code = extract(rel_model_name,1,9)

if revisione_01 == yes
     if drawing_rev == "01"
          rev01="01"
     else
          rev01="-"
     endif
endif

ciao nicksoft,

non avevo inserito la seconda volta endif al termine della relazione....credevo fosse un errore di copia e incolla
:redface:

quindi facendo la prima revisione funziona...:finger:

if revisione_01 == yes
if drawing_rev == "01"
rev01="01"
else
rev01="-"
id01=" "
endif
endif

:confused: ma se passo ad una revisione successiva:



if revisione_02 == yes
if drawing_rev == "02"
rev02="02"
id02="x"
else
rev02="-"
id02=" "
endif
endif

due campi compilati con la precedente relazione e che vorrei rimangano vengono cancellati (torna ad essere "-" e " ") e te li evidenzio in rosso di seguito:

if revisione_01 == yes
if drawing_rev == "01"
rev01="01"
id01="x"
else
rev01="-"
id01=" "
endif
endif
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top