Parametrizzazione assiemi

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#1
Buonasera a tutti, mi occupo di cuscinetti speciali a rulli, sto cercando di parametrizzare la progettazione in quanto le esecuzioni sono molto simili tra di loro, differiscono ovviamente per le quote e per qualche particolare che aggiungerò nel finale.
Pensavo di utilizzare iLogic per svolgere tutto in ambiente cad senza passare per Excel, ho creato le parti parametriche e ho anche passato i parametri delle parti all'assieme, però a me interesserebbe creare tutte le parti e tutti gli assiemi come mi consigliate di modellare?
Grazie in anticipo per l'aiuto!!
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#2
Scusate sono stato poco chiaro e non trovo il tasto per modificare il messaggio, comunque la mia intenzione era quella di progettare le parti ed un assieme standard non modificabile diciamo "master" da cui poi modificare quote e altri parametri e arrivare ad ottenere l'esecuzione desiderata, salvando ovviamente in un file diverso sia le parti che l'assieme nuovi. Per creare l'assieme master non c'è problema, ma poi per ricavare l'esecuzione desiderata, quale medoto risulta il migliore? Se uso iLogic per modificare l'assieme mi da la possibilità di salvare tutte le parti e l'assieme nuovo con un nome che prende da un parametro libero che imposto io? Grazie
 

cen82

Utente Standard
Professione: Disegnatore, Progettista
Software: inventor 2014, Autocad Mechanical 2014
Regione: Emilia Romagna
#3
ciao, vediamo se posso aiutarti. dimmi un po se ho capito bene.

tu parti che hai un assieme con dei componenti .

devi modificare il componente, l'assieme, salvare con nome entrambi ottenendo un assieme nuovo con un nome nuovo. e questa oprazione si deve ripetere per x volte?
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#4
Grazie della risposta!
Esattamente; devo salvare tutti i componenti con nome diverso e ovviamente anche l'assieme, mi piacerebbe inoltre che durante la modifica nella tabellina si potesse inserire il nome da dare ad ogni singolo file ma non riesco a farglielo fare. Il passo successivo sarebbe fargli copiare anche gli idw.
 

cen82

Utente Standard
Professione: Disegnatore, Progettista
Software: inventor 2014, Autocad Mechanical 2014
Regione: Emilia Romagna
#5
secondo me si potrebbe o creare qualcosa con vba però è da studiare e dipende se il gioco vale la candela. in alternativa potresti impostare l'assieme "master" con un po di parametri ed usare il pulsante quando inserisci un componente che si chiama "posiziona componente ilogic".
questa funzione ti crea una copia dell'assieme master che è quello che vuoi. bisogna che imposti i parametri tu però
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#6
Mi sembra la soluzione migliore! l'assieme master l'ho già fatto parametrico devo creare l'ilogic che penso funzioni come l'ipart, lunico dobbio che mi resta è se posizionando un assieme ilogic mi crea effettivamente una copia anche di tutti i componenti (comunque penso di si se no non avrebbe senso). Quandò avrò qualche minuto a lavoro ci provo e ti so dire! grazie!
 

Zac69

Utente Standard
Professione: Disegnatore
Software: Inventor
Regione: Piemonte
#7
Ciao, io utilizzerei gli Iassembly. Nessuna programmazione e mano ti crei l'archivio desiderato.
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#8
Grazie delle risposte, sto ottimizzando le parti e volevo chiedere, c'è qualche modo per imporre delle condizioni sui parametri?tipo se parametro 1=10 allora parametro 2 diventa tot, so che si possono fare le banali operazioni di somme e moltiplicazione coi parametri, ma qualcosa di più complesso non è possibile? devo per forza passare per excel? anche se collego o incorporo il file dei parametri della parte inventor si limita a leggere i parametri, parametri che dovrei inserire a questo punto in ambiente excel per fargli fare prima i calcoli e generare i parametri già corretti con cui inventor genera la parte.
 

Catafratto

Utente Standard
Professione: Disegnatore/progettista
Software: Inventor 2016
Regione: Veneto
#9
Grazie delle risposte, sto ottimizzando le parti e volevo chiedere, c'è qualche modo per imporre delle condizioni sui parametri?tipo se parametro 1=10 allora parametro 2 diventa tot, so che si possono fare le banali operazioni di somme e moltiplicazione coi parametri, ma qualcosa di più complesso non è possibile? devo per forza passare per excel? anche se collego o incorporo il file dei parametri della parte inventor si limita a leggere i parametri, parametri che dovrei inserire a questo punto in ambiente excel per fargli fare prima i calcoli e generare i parametri già corretti con cui inventor genera la parte.

Quello che chiedi è facilmente realizzabile con iLogic, e per operazioni di questo tipo basta una conoscenza minima del Basic e qualche tentativo. Ti consiglio di provare a guardare qualche tutorial di iLogic prima di decidere che strada prendere, alla fine potrebbero bastarti poche righe di codice per far tutto quello che ti serve (tipo "If ParamA = 1 Then ParamB = 75" e così via per fare un esempio stupido).
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#10
Quello che chiedi è facilmente realizzabile con iLogic, e per operazioni di questo tipo basta una conoscenza minima del Basic e qualche tentativo. Ti consiglio di provare a guardare qualche tutorial di iLogic prima di decidere che strada prendere, alla fine potrebbero bastarti poche righe di codice per far tutto quello che ti serve (tipo "If ParamA = 1 Then ParamB = 75" e così via per fare un esempio stupido).
Grazie infinite mi hai aperto un mondo! Ora cerco di armeggiare un po'!
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#11
Grazie a tutti per le risposte! Scusate se rompo ancora le scatole: per quanto riguarda le parti ho sviluppato una regola con dei semplici if then else che mi permette di gestire tutta la progettazione, la cosa che non riesco a fargli fare è leggere un parametro di testo e utilizzarlo come nome del nuovo file.
Uso la funzione
ThisDoc.Document.SaveAs(NewFileNameAndExtension , True)
ma non riesco a passargli un parametro come argomento.
 

Catafratto

Utente Standard
Professione: Disegnatore/progettista
Software: Inventor 2016
Regione: Veneto
#12
Grazie a tutti per le risposte! Scusate se rompo ancora le scatole: per quanto riguarda le parti ho sviluppato una regola con dei semplici if then else che mi permette di gestire tutta la progettazione, la cosa che non riesco a fargli fare è leggere un parametro di testo e utilizzarlo come nome del nuovo file.
Uso la funzione
ThisDoc.Document.SaveAs(NewFileNameAndExtension , True)
ma non riesco a passargli un parametro come argomento.
Nell'editor iLogic, nel nodo MessageBox, troverai in fondo (terzultima riga) InputBox, che dovrebbe servire al tuo scopo.
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#13
Nell'editor iLogic, nel nodo MessageBox, troverai in fondo (terzultima riga) InputBox, che dovrebbe servire al tuo scopo.
Grazie! Non riesco però a capire come dovrei utilizzarlo.
da quello che ho capito imputbox genera una finestra in cui mi fa immettere una stringa che legge come parametro, o sbaglio?

scusami forse non mi sono spiegato bene, il parametro riesco a leggerlo, non riesco a inserirlo come argomento della funzione, quando compilo la regola mi dice: Parametro non corretto. (Eccezione da HRESULT: 0x80070057 (E_INVALIDARG))
 

Catafratto

Utente Standard
Professione: Disegnatore/progettista
Software: Inventor 2016
Regione: Veneto
#14
Dim newFileName as string
newFileName = InputBox("Prompt", "Title", "Default Entry")
ThisDoc.Document.SaveAs(newFileName , True)

Dim dichiara la variabile
InputBox chiede un testo e lo memorizza nella variabile
Usi la variabile come nomefile da passare al SaveAs
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#15
Dim newFileName as string
newFileName = InputBox("Prompt", "Title", "Default Entry")
ThisDoc.Document.SaveAs(newFileName , True)

Dim dichiara la variabile
InputBox chiede un testo e lo memorizza nella variabile
Usi la variabile come nomefile da passare al SaveAs
Ottimo adesso ci provo!
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#16
Scusami se approfitto ancora della tua gentilezza, quando compilo mi esce:
Errore non specificato. (Eccezione da HRESULT: 0x80004005 (E_FAIL))

potrebbe essere dettato dal fatto che lavoro su un file salvato su server? ora provo a copiarlo in locale e riprovare

Niente da lo stesso errore anche in locale...
 

Catafratto

Utente Standard
Professione: Disegnatore/progettista
Software: Inventor 2016
Regione: Veneto
#17
Dopo un paio di prove penso di aver capito il tuo problema. Da quanto ho scoperto iLogic non permette di utilizzare il comando SaveAs su sottoassiemi: funziona solo sull'assieme principale. Suppongo che tu stia editando un sottoassieme visto con il solo assieme principale tutto funziona bene. A questo punto consigli ulteriori dipendono da quello che tu vuoi fare (che hai già spiegato) e dalla struttura molto precisa del tuo assieme: magari ti basta aprire l'assieme da modificare da solo.

Spero di essermi spiegato...
Tienici aggiornati
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#18
Dopo un paio di prove penso di aver capito il tuo problema. Da quanto ho scoperto iLogic non permette di utilizzare il comando SaveAs su sottoassiemi: funziona solo sull'assieme principale. Suppongo che tu stia editando un sottoassieme visto con il solo assieme principale tutto funziona bene. A questo punto consigli ulteriori dipendono da quello che tu vuoi fare (che hai già spiegato) e dalla struttura molto precisa del tuo assieme: magari ti basta aprire l'assieme da modificare da solo.

Spero di essermi spiegato...
Tienici aggiornati
Grazie, io ho cercato la tipologia di errore visual basic, è molto generico e non riesco a trovare altro, penso che a questo punto farò a mano il salva con nome!
 

marza10

Utente Junior
Professione: Progettista cuscinetti speciali
Software: inventor
Regione: lombardia
#19
Ho risolto trovando questa regola su questo forum http://inventortrenches.blogspot.it/2012/10/ilogic-adding-save-as-dialog-box.html
Non conosco bene le regole per postare materiale esterno ma vorrei postarla, magari serve a qualcuno.
Oltre a salvare con nome il file con un parametro definito, apre la finestra di dialogo per scegliere la cartella!

'define the active document
oDoc = ThisDoc.Document
'create a file dialog box
Dim oFileDlg As inventor.FileDialog = Nothing
InventorVb.Application.CreateFileDialog(oFileDlg)

'check file type and set dialog filter
If oDoc.DocumentType = kPartDocumentObject Then
oFileDlg.Filter = "Autodesk Inventor Part Files (*.ipt)|*.ipt"
Else If oDoc.DocumentType = kAssemblyDocumentObject Then
oFileDlg.Filter = "Autodesk Inventor Assembly Files (*.iam)|*.iam"
Else If oDoc.DocumentType = kDrawingDocumentObject Then
oFileDlg.Filter = "Autodesk Inventor Drawing Files (*.idw)|*.idw"
End If

'set the directory to open the dialog at
oFileDlg.InitialDirectory = ThisDoc.WorkspacePath()
'set the file name string to use in the input box
oFileDlg.FileName = iProperties.Value("Project", "Part Number")

'work with an error created by the user backing out of the save
oFileDlg.CancelError = True
On Error Resume Next
'specify the file dialog as a save dialog (rather than a open dialog)
oFileDlg.ShowSave()

'catch an empty string in the imput
If Err.Number <> 0 Then
MessageBox.Show("File NON salvato.", "Salvataggio")
ElseIf oFileDlg.FileName <> "" Then
MyFile = oFileDlg.FileName
'save the file
oDoc.SaveAs(MyFile, False) 'True = Save As Copy & False = Save As
End If