|
|
| Descrizione |
|---|
| Macro che, con un semplice clic su una cella del foglio di calcolo, aggiunge un vincolo di lunghezza a una linea, un cerchio o tra due punti utilizzando un alias o un indirizzo di cella del foglio di calcolo (es. C2). Le modifiche future al foglio di calcolo aggiorneranno il vincolo. La macro può creare l'alias autonomamente. Basta selezionare una linea, due punti o un vincolo, fare clic su una cella del foglio di calcolo ed eseguire la macro. È possibile selezionare linee, punti alle estremità di una linea, punti, cerchi o archi di cerchio. Versione macro: 02.03 Ultima modifica: 27/10/2025/ Versione FreeCAD: All Download: ToolBar icon Autore: 2cv001 |
| Autore |
| 2cv001 |
| Download |
| ToolBar icon |
| Link |
| Raccolta di macro Come installare le macro Personalizzare la toolbar |
| Versione macro |
| 02.03 |
| Data ultima modifica |
| 27/10/2025/ |
| Versioni di FreeCAD |
| All |
| Scorciatoia |
| Nessuna |
| Vedere anche |
| Nessuno |
Descrizione
Contattarmi sul forum di FreeCAD in caso di problemi.'
Macro che, con un semplice clic su una cella di un foglio di calcolo, aggiunge un vincolo di lunghezza a una linea o tra due punti utilizzando un alias o un indirizzo di cella (ad esempio C2). Le modifiche future al foglio di calcolo aggiorneranno il vincolo. La macro può creare l'alias autonomamente.
È sufficiente selezionare una linea, due punti o un vincolo, fare clic su una cella del foglio di calcolo ed eseguire la macro. È possibile selezionare linee, punti alle estremità di una linea, punti, cerchi o archi di cerchio.
Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager. Link for optional manual installation: Macro
# This code is copied instead of the original macro code
# to guide the user to the online download page.
# Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki
# or if the RAW code URL is somewhere else in the wiki.
from PySide import QtGui, QtCore
diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,
"Information",
"This macro must be downloaded from this link\n"
"\n"
"https://raw.githubusercontent.com/2cv001/FreeCAD-macros/master/Spreadsheet/Sketch_Constraint_From_Spreadsheet.FCMacro" + "\n"
"\n"
"Quit this window to access the download page")
diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
diag.setWindowModality(QtCore.Qt.ApplicationModal)
diag.exec_()
import webbrowser
webbrowser.open("https://raw.githubusercontent.com/2cv001/FreeCAD-macros/master/Spreadsheet/Sketch_Constraint_From_Spreadsheet.FCMacro")
Utilizzo
Creazione automatica di oggetti
Se si esegue la macro e non si ha ancora creato un foglio di calcolo, un corpo o uno schizzo, la macro suggerisce di crearne uno e poi apre lo schizzo in modalità di modifica e il foglio di calcolo in modo che si possa iniziare a compilarlo.
Creazione automatica di alias
Non è obbligatorio, ma è consigliabile utilizzare gli alias nel foglio di calcolo. La macro può creare alias a partire dal testo presente nelle celle.
Due modalità:
- una modalità manuale in cui si selezionano manualmente le celle contenenti il testo da utilizzare come alias.
- una modalità automatica:
Modalità automatica
Nella modalità automatica gli alias vengono creati automaticamente utilizzando un'area di testo definita da una cella. L'area include la cella stessa e quelle sottostanti. Questi testi corrispondono al nome dell'alias. L'alias viene creato a destra del relativo testo. La cella designata (in questo caso A3) è modificabile nelle seguenti finestre di dialogo:
Modalità manuale
Per utilizzare la modalità manuale, non selezionare l'opzione "Automatic alias".
Creazione dei vincoli
1) Selezionare:
- una linea,
- due punti (estremità di una linea, centro di un cerchio, ecc.)
- oppure un vincolo di lunghezza.
2) Fare clic su una cella del foglio di calcolo, con o senza alias, che contenga un valore numerico:
3) Eseguire la macro.
4) Selezionare il tipo di vincolo desiderato:
Se la cella ha un alias, la proprietà lunghezza del vincolo sarà qualcosa del tipo 'Spreadsheet.alias'. Altrimenti, qualcosa del tipo 'Spreadsheet.D4'.
5) Se il vincolo causa un conflitto nello schizzo e la casella "rilevamento conflitti" è selezionata, la macro proporrà di eliminare il nuovo vincolo:
Selezionando un vincolo esistente, è possibile modificarne il valore con un valore presente in un foglio di calcolo:
La macro può anche gestire geometrie esterne provenienti da un altro schizzo:
Per rendere il tutto ancora più preciso, se, ad esempio, una linea è orizzontale anziché verticale, all'apertura della finestra di dialogo il focus si sposterà sul pulsante per applicare un vincolo orizzontale. Se la linea è verticale anziché orizzontale, il focus si sposterà sul pulsante per applicare un vincolo verticale. In entrambi i casi, è sufficiente premere il tasto Invio se si è soddisfatti della scelta.
La macro funziona anche per le proprietà degli oggetti. Se, ad esempio, si fa clic sulla proprietà Lunghezza di un Pad e poi su una cella con il valore desiderato, la proprietà Lunghezza del Pad viene modificata automaticamente.
Si possono usare le formule
Principio: La macro trasforma l'alias prima di inserirlo nell'espressione del parametro o della dimensione. Sostituisce le parole chiave con operazioni per tutto ciò che segue la stringa di caratteri f (f per funzione).
Esempio di utilizzo:
Se l'alias è: radius_f__mul_2_plu_1
L'espressione sarà:
<<datas>>.radius_f__mul_2_plu_1 * 2 + 1
Quindi, se ad esempio c'è il valore 5 nella cella, il parametro o la dimensione assumerà il valore 5 * 2 + 1, che è uguale a 11.
Uno snippet di codice che mostra le possibili operazioni e formule da utilizzare:
formulaSeparator = '_f_'
dicoFormula = {
'_div_':'/',
'_mul_':'*',
'_plu_':'+',
'_mor_':'+',
'_les_':'-',
'_moi_':'-',
'_pg_':'(',
'_lp_':'(',
'_pd_': ')',
'_rp_': ')',
}
Raggio → diametro
Una casella di controllo consente di dividere il valore per 2 direttamente nella formula. Questo è molto utile, ad esempio, quando si desidera inserire un diametro che verrà convertito in un raggio. Un caso tipico è una linea in uno schizzo utilizzata come profilo per una rivoluzione.

Link
- Forum discussion (French)
- Forum discussion (English)
- Macro
- Come installare le macro
- Come personalizzare le barre degli strumenti
Ringraziamenti
Grazie a openBrain, mario52 e onekk per il loro aiuto con il codice!
Grazie a Syres per i test, le revisioni e l'aiuto con il codice.
Grazie a Roy043 e David69 per le varie revisioni e i miglioramenti apportati alla wiki.
Grazie a L'ami René per i test e le idee.
Script
Icona barra degli strumenti
Codice
ver 02.03 2025/10/27 by 2cv001 Macro_Sketch_Constraint_From_Spreadsheet.FCMacro
Download
Questa pagina è recuperata da https://wiki.freecad.org/Macro_Sketch_Constraint_From_Spreadsheet