Inserire variabile in "nome progetto"

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#1
E' possibile fare in modo che una variabile vada a finire nel campo "nome progetto" di un file par?

Mi servirebbe per i profili estrusi di alluminio, per esempio Nome progetto:
"Profilo CTA Tipo 04545 Cod.3214567 L= "variabile lunghezza" "
senza dover aggiungere una colonna specifica alla tabella che resterebbe poi vuota per gli altri pezzi che non hanno questa necessita'.

Cosi' quando genero la distinta ho gia' la lunghezza dei vari spezzoni senza che l'uff. acquisti si debba spulciare tutti i disegni....

ho visto che queste variabili si possono riportare in draft ma e' un po' una rottura di scatole, preferirei cosi'.


Ciao.
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#2
di solito sono le funzionalità del PDM, hai un PDM per la gestione dei file e codici?
attualmente come compili Nome Progetto? tipo di profilo, codice,..., li metti a mano?
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#3
di solito sono le funzionalità del PDM, hai un PDM per la gestione dei file e codici?
attualmente come compili Nome Progetto? tipo di profilo, codice,..., li metti a mano?
Sono un progettista libero professionista che lavora conto terzi, non ho nessun pdm e compilo i campi a mano (per quello mi farebbe comodo un automatismo che lo faccia).

Ciao.
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#4
io uso un PDM quindi non sono troppo informato sulla tua questione.
Non penso che SE direttamente consenta di concatenare campi e compilare in automatico.
Ho visto in passato macro che copiavano proprietà e variabili in Proprietà Custom (menù Personalizza) oppure interagivano con Excel.
Scartabellando nel computer ho una macro UpdatePorperties che interagisce con excel ma è del 2000, forse cercando su internet ci sono soluzioni un po' più nuove.
Ma visto che lavori per terzi e ognuno avrà la sua struttura di codifica, non sò quanto si possano automatizzare le tue procedure.
 

SE_User

Guest
#5
Ti suggerisco di fare un richiamo composto da due voci, come ad esempio %{NomeProgeto|R1} %{MiaVariabileEsposta|R1}.

Altre strade non ne vedo, se non con una macro.
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#6
Ti suggerisco di fare un richiamo composto da due voci, come ad esempio %{NomeProgeto|R1} %{MiaVariabileEsposta|R1}.

Altre strade non ne vedo, se non con una macro.
Potrebbe essere una soluzione... Faccio due prove e ti faccio sapere.

ciao.
 

alessio

Utente Junior
Professione: Assistenza Tecnica
Software: Solid Edge
Regione: Veneto
#7
Potresti provare ad esporra la variabile : dalla tabella variabili dpunti il flag su esponi e lo ritrovi poi nella variabile della parte come fosse una proprietà. Quindi anche nella distinta del DFT.
 

SE_CP

Guest
#8
Secondo me la strada migliore è come ti hanno già suggerito: le varibili esposte. Se ti crei un normal con il profilo di base potresti già esporre la lunghezza della protusion (ad esempio) come variabile esposta "Lunghezza".
Diverso è il discorso per il nome del file che potresti comporre con una formula...
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#9
Potresti provare ad esporra la variabile : dalla tabella variabili dpunti il flag su esponi e lo ritrovi poi nella variabile della parte come fosse una proprietà. Quindi anche nella distinta del DFT.
Si a questo ci ero gia' arrivato, volevo solo evitare di aggiungere una colonna alla tabellina sul disegno per ogni variabile da esporre, variabili che poi potrebbero essere diverse da particolare a particolare (per esempio per uno mi interesserebbe parametrizzare la descrizione inserendo la lunghezza, su un altro il diametro).

Grazie.
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#10
Diverso è il discorso per il nome del file che potresti comporre con una formula...
Infatti, era propio quello che mi interessava, trovare un modo di mettere queste variabili nel campo "nome progetto" in modo che tale descrizione diventi dinamica. Le altre strade tipo esporre la variabile e poi aggiungere alla tabellina una colonna apposita oppure inserire nella colonna stessa una voce fatta da due variabili associate tipo:

%GP[Nome-Progetto] Lunghezza L= %GP[variabile_esposta]

sono meno flessibili e portatrici di problemi credo.
Mando un mail all'assistenza vediamo cosa dicono.

Ciao.
 

SE_User

Guest
#11
Si a questo ci ero gia' arrivato, volevo solo evitare di aggiungere una colonna alla tabellina sul disegno per ogni variabile da esporre, variabili che poi potrebbero essere diverse da particolare a particolare (per esempio per uno mi interesserebbe parametrizzare la descrizione inserendo la lunghezza, su un altro il diametro).

Grazie.
Visto che le variabili esposte assumono il nome che tu gli dai, per non avere problemi dai a tutte lo stesso nome, così il cartiglio è sempre aggionato.
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#12
Da codice:

Dim objApp As SolidEdgeFramework.Application
Dim objDoc As SolidEdgePart.PartDocument
Dim valore As String

Public Sub main()

Set objApp = GetObject(, "SolidEdge.Application")
Set objDoc = objApp.ActiveDocument

valore = objDoc.Properties("SummaryInformation").Item("Titolo").Value + " Lunghezza = " + objDoc.Properties("Custom").Item("L").Value

objDoc.Properties("ProjectInformation").Item("Project Name").Value = valore

End Sub
In questo esempio prendo la proprietà "Titolo" ci aggiungo "Lunghezza =" e inserisco il valore di una proprietà custom di nome "L".

Quindi avendo:

Titolo = Perno
L = 49 mm

Nome progetto sarà: Perno Lunghezza = 49mm

Ciao
 
Ultima modifica:

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#13
Da codice:



In questo esempio prendo la proprietà "Titolo" ci aggiungo "Lunghezza =" e inserisco il valore di una proprietà custom di nome "L".

Quindi avendo:

Titolo = Perno
L = 49 mm

Nome progetto sarà: Perno Lunghezza = 49mm

Ciao
Grazie, appena capisco come usarlo ti faro' sapere.

Ciao.
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#14
Da codice:



In questo esempio prendo la proprietà "Titolo" ci aggiungo "Lunghezza =" e inserisco il valore di una proprietà custom di nome "L".

Quindi avendo:

Titolo = Perno
L = 49 mm

Nome progetto sarà: Perno Lunghezza = 49mm

Ciao

Ma poi questa associazione sarebbe "dinamica"? Oppure ogni volta che modifico il pezzo devo far girare la macro per aggiornare la descrizione?
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#15
Ma poi questa associazione sarebbe "dinamica"? Oppure ogni volta che modifico il pezzo devo far girare la macro per aggiornare la descrizione?
La seconda che hai detto, eventualmente la puoi associare all'evento "salva" in modo che venga eseguita automaticamente ad ogni salvataggio del file.

Per usarla fai un copia incolla di quanto scritto all'interno di una nuova macro in excel. Nei riferimenti del progetto ricordati di aggiungere tutto quando inizia con Solid Edge.

Ciao
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#16
Per usarla fai un copia incolla di quanto scritto all'interno di una nuova macro in excel. Nei riferimenti del progetto ricordati di aggiungere tutto quando inizia con Solid Edge.
Per fare delle prove e per progettare la macro si fa così. Se alla fine decidi di utilizzare questa strada, per non tenere excel aperto tutte le volte o si compila il programma (i compilatori costano) oppure si fa un WindosScriptFile wsf che come ho citato in un altro topic è un semplice file txt.

ovvero se vuoi provare subito la strada di Arfilli,

crea un file di testo 'macro1.wsf' e scrivici:

Codice:
<job id="main">
	<script language="JScript">
		 // WScript.Echo("JScript");
	</script>
	
	<script language="VBScript">
' i commenti in vb cominciano con un apice come questa riga
'WScript.Echo WScript.Version

Call Main()

' Dichiarazioni pubbliche - non va definito come in vb x excel il tipo di oggetto
Dim objApp 'As SolidEdgeFramework.Application
Dim objDoc 'As SolidEdgePart.PartDocument
Dim valore 'As String

Sub Main()

Set objApp = GetObject(, "SolidEdge.Application")
Set objDoc = objApp.ActiveDocument

valore = objDoc.Properties("SummaryInformation").Item("Titolo").Value + " Lunghezza = " + objDoc.Properties("Custom").Item("L").Value
objDoc.Properties("ProjectInformation").Item("Project Name").Value = valore

' Questo è un messaggio:
MsgBox("Fatto! le variabili saranno salvate al prox salvataggio.")

End Sub

	</script>
</job>
Da Notare: in vista con UAC rompe le scatole per la sicurezza.
Puoi aggiungere costrutti IF...then...else, o CASE (in caso di...), per distinguere piatti, tondi, profili e scegliere nomevariabile da esporre , ma se non si fanno le cose fatte bene si intercorre nei problemi che se cerca una variabile che non esiste la macro salta tutta quella parte di programma...
Per editare "macro1.wsf" consiglio Notepad++ (editor di testo freeware) che colora il testo
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#17
Per fare delle prove e per progettare la macro si fa così. Se alla fine decidi di utilizzare questa strada, per non tenere excel aperto tutte le volte o si compila il programma (i compilatori costano) oppure si fa un WindosScriptFile wsf che come ho citato in un altro topic è un semplice file txt.
Ho copiato bovinamente e mi da l'errore in figura, anche avendo esposto la variabile "L" nel file par.
Potrebbe dipendere da:
1) Licenza D&D?
2) Assenza di MS Excel sulla macchina (c'e' openoffice)?
3) Utente corrente non amministratore?
4) Hai scritto la macro con le variabili in inglese ed invece l'installazione e' in italiano?

ciao.
 

Allegati

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#18
cominciamo bene...

prova con lo zip allegato, è identica a quella che ho scritto sul forum ma è importante ragionare sullo stesso file di testo per fare il debug.

da te dice che l'errore è a riga 20 ovvero dove viene riconosciuto Solid edge aperto da cui piglio il documento attivo, se è così non riconosce solid edge e mi sembra impossibile.

se ad esempio la "L" non è esposta darà a riga 22 l'errore "indice non compreso nell'intervallo"

Dimmi se si ripete l'errore e la riga,
Dimmi il sistema operativo
Togli l'apice a riga 8 ovvero davanti a
WScript.Echo WScript.Version
e lancia, così puoi dirmi che versione è (non sò poi cosa me ne farò, ma intanto proviamo :p )
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#19
da te dice che l'errore è a riga 20 ovvero dove viene riconosciuto Solid edge aperto da cui piglio il documento attivo, se è così non riconosce solid edge e mi sembra impossibile.

se ad esempio la "L" non è esposta darà a riga 22 l'errore "indice non compreso nell'intervallo"

Dimmi se si ripete l'errore e la riga,
Dimmi il sistema operativo
Togli l'apice a riga 8 ovvero davanti a
WScript.Echo WScript.Version
e lancia, così puoi dirmi che versione è (non sò poi cosa me ne farò, ma intanto proviamo :p )
Mi sa che l'allegato non c'e', comunque:
Solid Edge V20 Design & Drafting SP.9 ITA
Sistema operativo WIN XP Home Edition SP3 ITA
comunque potrebbe essere un problema di licenza, con la D&D tante automazioni non funzionano (per esempio le librerie esterne).

dopo aver modificato la macro come indicato, all'esecuzione mi dice:

Windows script host: 5.7

comunque non voglio farti perdere tempo, non e' poi cosi' grave scrivere la lungezza a mano!
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#20
...sarà la D&D (non so cos'è e non voglio saperlo :p )

mi ero dimenticato l'allegato è un classico, prova e se non va lascia perdere.
ciao
 

Allegati