Creare un dft (nuovo) di un file asm, par, ecc

Riccardo Campana

Utente poco attivo
Professione: Ingegnere Meccanico
Software: Solid Edge ST4 e ST8
Regione: Marche
#1
Ciao, ho bisogno di un'aiuto..
uso ST9 e tramite excel volevo scrivere il codice di una macro per creare un dft (nuovo) di un file asm, par, ecc che gli imputo.
Non riesco a trovare l'istruzione per aprire un nuovo file .dft con il cartigli che voglio...
..chi mi puoi aiutare?

GRZ
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#2
Devi usare il metodo "Add" di Application.Documents,

qualcosa del genere:

Codice:
Dim application As SolidEdgeFramework.Application = Nothing
Dim documents As SolidEdgeFramework.Documents = Nothing

application = DirectCast(Marshal.GetActiveObject("SolidEdge.Application"), SolidEdgeFramework.Application)
documents = application.Documents

documents.Add("SolidEdge.DraftDocument","C:\Documenti\MyTemplate.dft")
In ogni caso, se vai ad impostare il tuo template come default non hai bisogno di specificarlo tutte le volte.

Ciao
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#4
...queste istruzioni valgono anche per il VB di excel?
cambia leggermente:
Codice:
Dim application As SolidEdgeFramework.Application
Dim documents As SolidEdgeFramework.Documents

Set application = GetObject(,"SolidEdge.Application")
Set documents = application.Documents

Call documents.Add("SolidEdge.DraftDocument","C:\Documenti\MyTemplate.dft")
 

Riccardo Campana

Utente poco attivo
Professione: Ingegnere Meccanico
Software: Solid Edge ST4 e ST8
Regione: Marche
#5
GRZ 1000...
....mi suggerisci anche le istruzioni basilari per la scelta del cartiglio una volta aperto il dft..GRZ
 

Riccardo Campana

Utente poco attivo
Professione: Ingegnere Meccanico
Software: Solid Edge ST4 e ST8
Regione: Marche
#7
Faccio così...

Set objDoc = objApp.Documents.Add("SolidEdge.DraftDocument", "C:\Program Files\Solid Edge ST9\Template\Draft_Aut.dft")
Call objApp.StartCommand(57637) 'Incolla tutto nel nuovo file
Call objApp.StartCommand(10002) 'Rendo visibile gli sfondi disponibili
......NON RIESCO A SELEZIONARE LO SFONDO CHE MI SERVE.....
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#8
Faccio così...

Set objDoc = objApp.Documents.Add("SolidEdge.DraftDocument", "C:\Program Files\Solid Edge ST9\Template\Draft_Aut.dft")
Call objApp.StartCommand(57637) 'Incolla tutto nel nuovo file
Call objApp.StartCommand(10002) 'Rendo visibile gli sfondi disponibili
......NON RIESCO A SELEZIONARE LO SFONDO CHE MI SERVE.....
Imposto lo sfondo di nome "A4" nel foglio corrente:
Codice:
Set objDoc.ActiveSheet.Background = objDoc.Sheets.Item("A4")
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#10
...non mi funziona...

DICE ..."PROPRIETA' O METODO NON SUPPORTATI DALL'OGGETTO"
Scusa c'è un "Set" di troppo; devi anche impostare la dimensione foglio:
Codice:
Set objApp = GetObject(, "SolidEdge.Application")
Set objDoc = objApp.ActiveDocument

objDoc.ActiveSheet.Background = objDoc.Sheets.Item("A4")
objDoc.ActiveSheet.SheetSetup.SheetSizeOption = objDoc.Sheets.Item("A4").SheetSetup.SheetSizeOption
 

Riccardo Campana

Utente poco attivo
Professione: Ingegnere Meccanico
Software: Solid Edge ST4 e ST8
Regione: Marche
#11
Codice:
Set objApp = GetObject(, "SolidEdge.Application")
Set objDoc = objApp.ActiveDocument

objDoc.ActiveSheet.Background = objDoc.Sheets.Item("A4")

FINO A QUì OK poi la scelta della dimensione del foglio non funziona...
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#12
Codice:
Set objApp = GetObject(, "SolidEdge.Application")
Set objDoc = objApp.ActiveDocument

objDoc.ActiveSheet.Background = objDoc.Sheets.Item("A4")

FINO A QUì OK poi la scelta della dimensione del foglio non funziona...
Forse nel tuo template è impostata una dimensione fuori standard e di conseguenza "SheetSizeOption" non è valorizzato.

In tal caso devi assegnare le proprietà .SheetWidth e .SheetHeight
 

Riccardo Campana

Utente poco attivo
Professione: Ingegnere Meccanico
Software: Solid Edge ST4 e ST8
Regione: Marche
#15
Ciao e scusa di nuovo...
...a seguire il discorso precedente ...ho questa macro che mi cambia sostanzialmente il cartiglio da vecchio formato a nuovo formato, riesco a fare quasi tutto sul file (grazie al tuo aiuto) richiamo il file, salvo cambio il formato sovrascrivo creo la versione OLD (se necessaria) ecc ecc. come volevo.

Ma vorrei/dovrei per aggiornarlo completamente anche cambiare gli attributi degli elementi del disegno, provo a spiegarmi:

1) vorrei cambiare lo stile delle quote dal vecchio formato (chiamato UNI) a nuovo formato (chiamato UNI_ser_O)

2) vorrei cambiare lo stile delle linee

3) cambiare lo stile delle viste

4) ecc

mi suggerisci qualche comando per riuscire a far ciò? GRZ
 

Be_on_edge

Moderatore
Staff Forum
Professione: Progettazione
Software: Solid Edge
Regione: Emilia Romagna
#16
1) Devi passare tutte le quote in tutti i fogli e cambiare il nome dello stile guarda :
objDoc.Sheets.Item(1).Dimensions.Item(1).Name

2) Hai disegnato molte linee nel tuo dft ? Altrimenti basta che aggiorni gli stili di Default (Visible, Hidden, ecc.)

3) Questo lo fai come per lo stile quote, devi passare tutte le viste in tutti i fogli e cambiare il nome dello stile guarda:
objDoc.Sheets.Item(1).DrawingViews.Item(1).StyleName