• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Leggi altro.

Sostituzione di componenti, che hanno una family table, in un assieme

Tekkasoft

Utente Junior
Professione: Ingegnere Progettista/Disegnatore CAD
Software: AutoCad, PRO-E, Adobe
Regione: Calabria
#1
ciao a tutti,

qualcuno di Voi sa come sostituire all'interno di un assieme uno o più componenti, che hanno una family table, in base al valore di un parametro da impostare solo nell'assieme padre.
Ho provato a vedere sull'help e l'unica cosa che ho trovato è la funzione lookup_inst(..) ma non ho capito bene come funziona e come si usa all'interno delle relazioni.

In mancanza di questo l'unica strada è quella di creare assiemi diversi che contengano questa o quella variante di quel componente.

grazie anticipatamente
buon fine settimana
:confused:
 

maxopus

Mod. Creo e Reverse Eng.
Staff Forum
Professione: Progettista meccanico
Software: Creo Parametric
Regione: Marche (PU)
#2
Quello che chiedi mi sa che è fattibile solo in Pro/Program (sostituire il componente in base a condizioni).
L'alternativa è legare le dimensioni del componente alle dimensioni o ai riferimenti dell'assieme.
 

Tekkasoft

Utente Junior
Professione: Ingegnere Progettista/Disegnatore CAD
Software: AutoCad, PRO-E, Adobe
Regione: Calabria
#3
In effetti ho provato a modificare il listato del programma in PRO/PROGRAM ma succede una cosa strana.
Nella sezione dedicata alle RELATIONS ho messo la funzione lookup_inst, che mi restituisce il nome della variante, assegnandola ad un parametro stringa chiamato INST_NAME.
Nel punto dove si aggiunge la parte ho sostituito il nome con la variabile INST_NAME ed assegnadole un ID uguale a quello che aveva la part inserita nel modo convenzionale.
Salvando il listato e aggiornando il progetto il risultato però non cambia.

Continuerò a lavorarci e se trovo il sistema vi farò sapere, sempre che non lo risolve prima qualcun altro.
grazie comunque.
 

Tekkasoft

Utente Junior
Professione: Ingegnere Progettista/Disegnatore CAD
Software: AutoCad, PRO-E, Adobe
Regione: Calabria
#4
Mi rispondo da solo perchè la soluzione è quella citata nel post di prima con l'aggiunta che per l'operazione ADD PART, all'interno del listato PRO/PROGRAM il nome INST_NAME va inserito tra parentesi tonde

ADD PART (INST_NAME)
.....
....

alla prossima
 

blubossa

Utente Standard
Professione: disegnatore
Software: CREO 2, WF5, SOLIDWORKS 2015, AUTOCAD 2016,
Regione: puglia
#5
Mi rispondo da solo perchè la soluzione è quella citata nel post di prima con l'aggiunta che per l'operazione ADD PART, all'interno del listato PRO/PROGRAM il nome INST_NAME va inserito tra parentesi tonde

ADD PART (INST_NAME)
.....
....

alla prossima

ciao Tekkasoft,
sto cercando anche io di capirci qualcosa in PRO/PROGRAM ma sono a zero....
potresti allegarmi qualche esempio in modo da capirci qualcosa?

grazie
bb
 

Tekkasoft

Utente Junior
Professione: Ingegnere Progettista/Disegnatore CAD
Software: AutoCad, PRO-E, Adobe
Regione: Calabria
#6
Ciao Blubossa,

la cosa non è troppo complicata ma è necessario che leggi un pò il manuale online disponibile con Proe, per farti un'idea di cosa è possibile fare e delle funzioni ad esso associate.

In ogni caso per sostituire un componente in un assieme, parametrizzato, è necessario lavorare su due fronti (io faccio così almeno).
1. Nelle relazioni dell'assieme devi inserire la funzione LOOKUP_INST tante volte per quanti pezzi vuoi sostituire anche con delle funzioni condizionali come if () endif.

elemento1 = LOOKUP_INST("part1.PRT", 0, "ARTICOLO","OPEN")
IF CODICE == "001"
elemento2 = LOOKUP_INST("part1.PRT", 0, "ARTICOLO","SWITCH")
ENDIF
(leggi l'help sulla funzione lookup_inst per capire come si usano i parametri )

2. Apri il PROGRAM (edit file) e troverai nella sezione relazioni le stesse cose che hai scritto al punto 1.

RELATIONS
elemento1 = LOOKUP_INST("part1.PRT", 0, "ARTICOLO","OPEN")
IF CODICE == "001"
elemento2 = LOOKUP_INST("part1.PRT", 0, "ARTICOLO","SWITCH")
ENDIF
END RELATIONS

Adesso devi trovare, in basso, il punto dove Proe inserisce il file PART (troverai il nome del fil epart) che ti interessa modificare a runtime e sostituire il nome che Proe gli ha dato con il nome che gli hai dati tu (element1 o 2 nell'esempio) ovviamente tra parentesi.

ADD PART (elemento1)
INTERNAL COMPONENT ID 111
END ADD

A questo punto se il tuo file part1.prt ha una family table che comtempla nel parametro ARTICOLO i valori OPEN o SWICTH, nel file .asm i file .prt saranno sotituiti con le relative varianti della family table altrimenti non saranno sostituiti.

Spero che la spiegazione sia stata abbastanza chiara ma non appena comincerai a lavorarci e a fare qualche prova ti risulterà molto più facile di quanto non sembri.

a presto
 

blubossa

Utente Standard
Professione: disegnatore
Software: CREO 2, WF5, SOLIDWORKS 2015, AUTOCAD 2016,
Regione: puglia
#7
grazieTekkasoft, ci provo e se ho problemi ti faccio un fuschio:tongue: