Importare quote da foglio Excel

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#1
Salve,
ho creato un file dwg con disegno 2D e quote parametriche.
Adesso vorrei poter modificare tali quote dall'esterno, collegandole ad un foglio excel.
Ho provato a smanettare sulle tabelle di autocad, ma sono solo riuscito ad importare la tabelle nel foglio di lavoro, senza alcun link con le quote, come interessa a me.
Sapete dirmi come si crea questo link quote_autocad <-> celle_excel?
 

Tristan

Utente Senior
Professione: Application Engineer
Software: AutoCAD Civil 3D, Revit e altre amenità
Regione: Trentino
#2
Dubito che AutoCAD sia capace di fare questo. Con Inventor invece sono sicuro che si possa fare
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#3
Inventor si e Autocad liscio no? Excel risolve la mancanza.
Nel foglio trovate due pulsanti, List e Refresh Parametric; il primo scrive le variabili create nel dwg in excel, ad esclusione di quelle che contengono formule, l'altra preleva i valori da excel e sovrascrive le variabili in Autocad permettendo così di modificare il disegno parametrico.
Si può evitare di usare ListParametric, basta scrivere manualmente i nome delle variabili che si vogliono modificare, aggiungerne il valore e fare il Refresh.
Il file ha come riferimento della libreria Autocad 2018, provvedete Voi in base alla Vostra versione a modificarlo.

L'ho buttato giù di corsa, se avete problemi, chiedete.

Saluti
 

Allegati

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#4
Come fa una macro a prendere i dati da autocad?


List funziona, Refresh no.

Cattura.PNG

Cattura2.PNG
 

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#5
Questo è quanto vorrei fare:

Cattura.PNG

Non lavoro con Inventor perché il meccanismo resterà in 2D, e con Inventor, se non creo un solido per ogni parte nella messa in tavola non vedo nulla.
Oltre tutto non saprei come creare dei vettori che si modificano in base agli spostamenti del membro motore, la manovella a disco.
 

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#6
Perdonami la seguenza di post rpor66, ma ho smanettato un po' sul tuo file e ho notato quanto segue:
List Parametric prende le varibili (ok funziona)
Refresh Parametric sovrascrive le variabili parametriche di autocad solo la prima volta, ma restituisce l'errore sopra postato.
C'è un modo per farlo funzionare sempre?
E' difficile darmi indicazioni per smanettare sul codice? (anni fa conoscevo un po VB4.0).
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#7
Riveduta e corretta, provala.
Appena ho un pò di tempo compilo un manualetto e lo posto.
Ciao
 

Allegati

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#8
Innanzitutto grazie per questo tempo che stai dedicando...
poi..come mai non risulta la variabile ang1?
E' importante poter modificare l'angolo della manovella.


Cattura.PNG
 

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#9
Una richiesta: si può fare in modo che solo alcune variabili vengano importate?
Questo perché i valori delle velocità e delle accelerazioni devono essere misurate da excel dopo avere aggiornato da geometria e
poi mi devono essere restituite.

Quindi:
1. premo list e ottengo la lista delle variabili (funziona, complimenti)
2. modifico alcune variabili
3. le altre non modificate e che erano una conseguenza della precedente geometria, verranno passate, cosa che non deve avvenire.

Ideale è quindi poter scegliere le variabili da importare o da refreshare e fare in modo che list e refresh scrivano in celle o fogli differenti.
 

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#10
ang1 non la prende perchè è uguale a 0 e nel codice hai scritto che deve essere diversa da 0.
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#11
Una richiesta: si può fare in modo che solo alcune variabili vengano importate?
Questo perché i valori delle velocità e delle accelerazioni devono essere misurate da excel dopo avere aggiornato da geometria e
poi mi devono essere restituite.

Quindi:
1. premo list e ottengo la lista delle variabili (funziona, complimenti)
2. modifico alcune variabili
3. le altre non modificate e che erano una conseguenza della precedente geometria, verranno passate, cosa che non deve avvenire.

Ideale è quindi poter scegliere le variabili da importare o da refreshare e fare in modo che list e refresh scrivano in celle o fogli differenti.
1) corretto, se è un numero viene importato, prima se era 0 lo scartava.
2 e 3) la modifica delle variabili la fai sulla colonna C (nuovi valori), solo le celle che contengono dei valori ritorneranno in Autocad, quelle vuote no.

Se i valori da scrivere nella colonna C sono risultanti da calcolo, aggiungi al programma la parte di software che preleva i dati da colonna B, li elabora e li scrive in colonna C se differenti.

Ciao
 

Allegati

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#13
Ottimo lavoro. Si può fare in modo che se su autocad, lavorando, aggiungo un'altra variabile e poi faccio refresh, questa su excel si posizioni alla fine e non in mezzo? (questo perchè mi sballa tutte le formule presente nel foglio).
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#14
Non utilizzare ListParametric, semplicemente aggiungi il nome della variabile in colonna A, ne setti il valore in colonna C e usi solo Refresh per modificarne il valore.
 

goccia

Utente Standard
Professione: Studente ing meccanica
Software: freecad, catia v5
Regione: Sicilia
#15
Non posso farlo perché ogni volta che gli passo un nuovo angolo la geometria cambia, di conseguenza le nuove quote e io devo prendere queste.
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
#19
Non è che ne legge solo due, legge solo quelle che hanno come valore un numero, ang1 è un numero + variabile.
Al momento non riesco a leggere le variabili utenti in PARAMETER, quindi, il valore da sommare in ang1 lo devi gestire in excel.
Praticamente, il valore della variabile variazione_angolare eliminala da autocad, la sommi a ang1 in excel.