MACRO per Solid Edge

Davimont

Utente Standard
Professione: Disegnatore meccanico Fai da te.
Software: Solid Edge ST10
Regione: Lombardia
#81
Grazie Papao :finger:
Prima o poi mi metto anche io a studiare! Mi son sempre piaciuti i linguaggi di programmazione ma manca il tempo.
Provata e funziona!
 

ApeGana

Utente Standard
Professione: Progettista
Software: Solid Edge ST8
Regione: Marche
#82
Ciao.
Una domanda per gli esperti:
se in una macro ho la variabile pippo e all'interno di un solid edge ho un part aperto che contiene una variabile pluto (che rappresenta una lunghezza, o un angolo, o è una variabile di soppressione....) che comando devo usare per fare in modo che a pluto venga assegnato il valore di pippo?
Grazie
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#83
Ciao.
Una domanda per gli esperti:
se in una macro ho la variabile pippo e all'interno di un solid edge ho un part aperto che contiene una variabile pluto (che rappresenta una lunghezza, o un angolo, o è una variabile di soppressione....) che comando devo usare per fare in modo che a pluto venga assegnato il valore di pippo?
Grazie
prima di tutto devi connettere la macro a solid edge ed al file aperto, poi puoi valorizzare la tua variabile.
A seconda del linguaggio che utilizzi la sintassi sarà differente

Esempio in VB:

Codice:
Dim objApp as SolidEdge.Framework.Application
Dim objPar as SolidEdge.Part.PartDocument

Set objApp = Getobject (,"SolidEdge.Application")
Set objPar = objApp.ActiveDocument

Set Pluto = objPar.Variables.Item("Pippo").value
L'ho scritta a memoria quindi potrebbero esserci degli errorini, comunque nell'SDK di SolidEdge ci sono molti esempi.

Ciao
 

ApeGana

Utente Standard
Professione: Progettista
Software: Solid Edge ST8
Regione: Marche
#84
Grazie BOE, sempre disponibilissimo!
Alle prime 4 righe c'èero, ma non riuscivo a trovare nella guida alla programmazione il comando per l'assegnazione della variabile.

Però mi viene un dubbio: scritta così non fa il contrario di quello che serve a me?
Scambiando i due pezzi va bene lo stesso?

Codice:
Set objPar.Variables.Item("Pippo").value = Pluto
 

ApeGana

Utente Standard
Professione: Progettista
Software: Solid Edge ST8
Regione: Marche
#86
Chiedo scusa, sabato quando ho visto la tua risposta poi ho fatto confusione con i nomi e ho scritto una stupidaggine
Io devo modificare una lunghezza (pluto) in Solid Edge secondo il valore di una variabile (pippo) presente nella macro.

Set objPar.Variables.Item("Pluto").value = Pippo

Così va bene??
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#87
io faccio così: ti riporto alcune righe dalla macro Simulator per Solidedge che avevo già pubblicato sul forum.
Ho riportato sia la modifica, sia la lettura della variabile. Scrivi in millimetri ma leggi in metri. Dipende dalle impostazioni di sistema (default metrico).

Codice:
Dim objApp As SolidEdgeFramework.Application
Dim objVars As SolidEdgeFramework.Variables
Dim objVar As SolidEdgeFramework.Variable

Const PI = 3.14159265358979
Const Gradi = 180 / PI

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

Dim varSetName, varSetValue
varSetName = "Diametro"
varSetValue = 100 'mm		'xlsActiveSheetxlsActiveSheet.Cells(1, 1).Value

'esempio di modifica variabile
Call objVars.Edit(varSetName, varSetValue) 'default input system (mm, degrees,...)



'esempio di lettura di una variabile
Set objVar = objVars.Item(varGetName) 'nb: trova le Var non le Dim
Select Case objVar.UnitsType   'non ho trovato tabella di corrispondenza, controllati a mano da finestra Variabili Locali
	Case 1  ' distanza
		varGetValue = objVar.Value * 1000 'm to mm
	Case 2  ' angolo
		varGetValue = objVar.Value * Gradi 'rad to gradi
	Case 58 ' scalare
		varGetValue = objVar.Value
	Case Else
		varGetValue = objVar.Value
End Select
 

ApeGana

Utente Standard
Professione: Progettista
Software: Solid Edge ST8
Regione: Marche
#88
Ringrazio sia BOE che Vespa.
Ho provato in entrambi i modi e ho risolto.

Per la cronaca:
Premetto che sto lavorando da Excel e in questo caso non avrò necessità di compilare.
Sempre sotto le condizioni:

Dim objApp As SolidEdgeFramework.Application
Dim objDoc As SolidEdgePart.PartDocument
Set objApp = GetObject(, "SolidEdge.Application")
Set objDoc = objApp.ActiveDocument
con

objDoc.Variables.Item("Pluto").value = Pippo
la variabile Pluto assume il valore di Pippo moltiplicato per 1000, poco male, ho risolto modificando in

objDoc.Variables.Item("Pluto").value = Pippo/1000
ma questo metodo funzionava per la modifica di variabili derivanti da quote (tipo dim in solid edge) ma non per una variabile di soppressione (tipo var).

con

Call objDoc.Variables.Edit("Pluto", Pippo)
invece funziona in entrambi i casi e non ci sono problemi di scala.


Sempre per la cronaca la macro mi serviva per creare in automatico n par di viti di dimensioni variabili in modo che ogni file avesse il nome corretto per il nostro archivio aziendale e le giuste proprietà personalizzate.
Sicuramente sono attività già affrontate e risolte quasi da tutti, ma se a qualcune servisse sono a disposizione.

Ape
 

jxay

Utente Junior
Professione: disegnatore cad
Software: SolidWorks-SolidEdge
Regione: marche
#89
Macro "FILETTATURE" da Be_on_Edge.

Serve ad eliminare il valore del diamentro nominale dalle quote desiderate ed inserire la corrispondente indicazione di filettatura.

http://www.cad3d.it/forum1/showthread.php?t=19167
Esiste una macro simile a questa citata, ma per i fori svasati e lamati (TSEI,TCEI)?
e magari anche il numero dei fori dello stesso tipo
Mi sono cerato una lista di impostazioni salvate con i vari nomi "TCEI M10" ecc.. e quei nomi potrebbero essere usati per dare la quota al foro..
Spero di essere stato chiaro.
Grazie
ciao
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#90
Esiste una macro simile a questa citata, ma per i fori svasati e lamati (TSEI,TCEI)?
e magari anche il numero dei fori dello stesso tipo
Mi sono cerato una lista di impostazioni salvate con i vari nomi "TCEI M10" ecc.. e quei nomi potrebbero essere usati per dare la quota al foro..
Spero di essere stato chiaro.
Grazie
ciao
Lo puoi fare senza il bisogno di alcuna macro, basta che vai ad "Insegnare" a Solid Edge come vuoi che compaio la descrizione.
Per fare questo devi andare nelle impostazioni dello stile quota da te utilizzato, scheda "Richiamo feature" ed andare ad inserire le tue personalizzazioni.

A questo punto potrai richiamare in automatico questo stile per ogni foro ed anche nella tabella di foratura.

Magari approfondisci con la guida, se poi hai bisogno chiedi qui.

Ciao
 

jxay

Utente Junior
Professione: disegnatore cad
Software: SolidWorks-SolidEdge
Regione: marche
#91
Lo puoi fare senza il bisogno di alcuna macro, basta che vai ad "Insegnare" a Solid Edge come vuoi che compaio la descrizione.
Per fare questo devi andare nelle impostazioni dello stile quota da te utilizzato, scheda "Richiamo feature" ed andare ad inserire le tue personalizzazioni.

A questo punto potrai richiamare in automatico questo stile per ogni foro ed anche nella tabella di foratura.

Magari approfondisci con la guida, se poi hai bisogno chiedi qui.

Ciao
Grazie per la risposta, ma non ho capito come fare (io ho st3).
-->OPZIONI SOLID EDGE
-->STILE DI QUOTA
-->RICHIAMO FEATURE NON C'è?????

Scusa ma 10 anni di solid works e solo 4 mesi di solid edge ,ancora devo ambientarmi!!!
ciao e grazie


Forse intendevi qualcos'altro, sto vedendo forse ci riesco...
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#92
Grazie per la risposta, ma non ho capito come fare (io ho st3).
-->OPZIONI SOLID EDGE
-->STILE DI QUOTA
-->RICHIAMO FEATURE NON C'è?????

Scusa ma 10 anni di solid works e solo 4 mesi di solid edge ,ancora devo ambientarmi!!!
ciao e grazie


Forse intendevi qualcos'altro, sto vedendo forse ci riesco...
Sono impostazioni legate allo stile di quota che utilizzi (presumo te ne sia creato uno con le tue preferenze).
Devi quindi andare in modifica stili \ quote \ selezioni il tuo e lo modifichi.
A questo punto tra le varie schede dello stile quota c'è appunto "Richiamo feature".

https://docs.plm.automation.siemens.com/tdoc/se/107/help/#goto:annotations:holcal1d
 

jxay

Utente Junior
Professione: disegnatore cad
Software: SolidWorks-SolidEdge
Regione: marche
#93

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#94
Scusa ma dove è "modifica stili"?????
Intendi proprietà di richiamo??
Sulla barra si chiama solo "Stili", lo trovi nella scheda "Home" sezione "Quota", ha come icona una A in corsivo ed una A più piccola.
Con il "Finder" (casella con scritto "Finder" nella barra di stato) se scrivi "Stile" te la trova.

Ciao
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
#96
Nell'ambiente Draft imposta lo Zoom al 100%.
La risoluzione in dpi dello schermo può influre leggermente da schermo a schermo, suggerisco quindi di creare per ogni utente utilizzatore file personalizzati.
Aprire con il Blocco note il file e adattare il valore di zoom. (es.: objApp.ActiveWindow.Zoom = 98.33 )
View attachment Zoom100nomeutente.zip
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#97
Nell'ambiente Draft imposta lo Zoom al 100%.
La risoluzione in dpi dello schermo può influre leggermente da schermo a schermo, suggerisco quindi di creare per ogni utente utilizzatore file personalizzati.
Aprire con il Blocco note il file e adattare il valore di zoom. (es.: objApp.ActiveWindow.Zoom = 98.33 )
View attachment 41838
Cosa intendi per 100% ?
 

cacciatorino

Moderatore SolidEdge
Staff Forum
Professione: Ingegnere meccanico
Software: SolidEdge CoCreate Salome-Meca
Regione: Porto Recanati, ma con l'appennino nel cuore
#98
Credo intenda lo zoom ottimizzato. In effetti con SE capita che salvi un disegno su uno schermo a 4/3 in un modo e poi riaprendolo con un 16/9 devi dargli il comando di vista ottimizzata per vederlo tutto (o viceversa)
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#99
Ah ok, io tengo premuto il tasto "ALT" e un singolo click con il tasto DX del mouse.
 

vespa_83

Utente Standard
Professione: disegnatore
Software: Solid Edge
Regione: Romagna
Per zoom 100% intendo che se a video ho un foglio A4, premo un foglio di carta e lo appoggio allo schermo e devono combaciare all'incirca. Non che sia una cosa fondamentale, neppure che se ne senta spesso il bisogno, ma per certi particolari può tornar comodo.