This documentation is not finished. Please help and contribute documentation.
GuiCommand model explains how commands should be documented. Browse Category:UnfinishedDocu to see more incomplete pages like this one. See Category:Command Reference for all commands.
See WikiPages to learn about editing the wiki pages, and go to Help FreeCAD to learn about other ways in which you can contribute.
Si presume che Sketcher abbia bisogno di alcuni esempi che non siano tutorial o video dettagliati...
Una cerniera a pellicola è un piccolo pezzo di plastica flessibile che collega i due lati di un oggetto stampato a iniezione, come un condotto con un coperchio, o entrambe le metà di un involucro di protezione antipolvere.
Questo esempio utilizza una sorta di schizzo principale su cui sovrapporre alcuni schizzi dipendenti. Mostra inoltre come collegare e animare una semplice clip basata su feature di PartDesign e vincoli di
Sketcher. L'utilizzo di
espressioni come descritto di seguito richiede FreeCAD V 0.21 o superiore.
Solitamente un oggetto viene modellato in condizione chiusa. Successivamente, la parte mobile deve essere capovolta di 180° per essere modellata in condizione aperta.
La striscia pieghevole è rappresentata da un arco di cerchio per la condizione chiusa e da una linea retta per la condizione aperta, entrambi con lo stesso punto di partenza.
Il punto medio di una linea che collega entrambi i punti finali indica la posizione dell'asse di capovolgimento, che è normale al piano dello schizzo. (È posizionato sull'origine dello schizzo in modo che l'asse globale normale al piano dello schizzo possa essere utilizzato come asse di capovolgimento)
(Alcune spiegazioni aggiuntive nascoste e descrizioni del flusso di lavoro possono essere trovate espandendo qui -->
Schizzo principale e cardine del film finale animato (cliccare sull'immagine se l'animazione si è interrotta dopo alcune ripetizioni)
Per un semicerchio, la lunghezza dell'arco è il raggio moltiplicato per Pi greco (l = r * Pi greco). Il raggio è detto NeutralRadius e la linea è detta DevelopedLength. Un'espressione per DevelopedLength mette in relazione entrambi i valori: .Constraints.NeutralRadius * pi greco
.
seguito da ValueType.ValueName per indirizzare un altro valore.
L'arco di questa cerniera a pellicola ha lunghezza costante e raggio variabile. Un input è il NeutralRadius dello schizzo di base; per averlo a portata di mano in questo schizzo, è collegato come geometria di proiezione esterna con una dimensione di riferimento chiamata ReferenceRadius
Un segmento di torta nella geometria di costruzione mostra la relazione tra l'arco e il raggio per un dato angolo.
InputLength = ReferenceRadius * Pi
e
ArcLength = DynamicRadius * Pi * ArcAngle / 180°
con lunghezza costante risulta:
ReferenceRadius * Pi = DynamicRadius * Pi * ArcAngle / 180°
E eliminando Pi otteniamo:
ReferenceRadius = DynamicRadius * ArcAngle / 180° oppure DynamicRadius = ReferenceRadius * 180° / ArcAngle
.Constraints.ReferenceRadius * 180 ° / .Constraints.AngoloArco
Una cerniera a pellicola è solitamente simmetrica, quindi per l'output viene utilizzato un altro arco con lo stesso punto centrale, chiamato HalfArc, che rappresenta metà dell'arco della cerniera.
.Constraints.ArcAngle / 2
Schizzo intermedio che mostra il raggio dinamico dell'arco di cerniera di 4 (mm) a un dato angolo di 45° (e il mezzo arco per l'output)
Questo schizzo definisce lo spessore e la geometria adiacente alla cerniera della pellicola. Pertanto, si indichi il semiarco dello schizzo intermedio come geometria esterna per utilizzarlo come base per la parte della pellicola (in questo caso, una frazione di 180°).
Questa cerniera a pellicola ha lo scopo di mantenere le parti collegate a contatto tra loro quando sono chiuse. Questo risultato può essere ottenuto calcolando un arco circolare della lunghezza necessaria, quindi creando una striscia di spessore costante e infine applicando dei raccordi nel punto in cui la striscia incontra le metà dell'oggetto. L'ultimo passaggio accorcia in qualche modo l'anello, ma nel mondo reale questo non rappresenta un problema, perché l'arco non sarà mai circolare e quindi i raccordi influiscono sulla curvatura dell'arco ma non sulla sua funzionalità.
Schizzo della cerniera che mostra il contorno della cerniera in base alla geometria esterna del semiarco dello schizzo intermedio
A sinistra: mezza cerniera estrusa con schizzo visibile. A destra: mezza cerniera con aggiunta di un
raccordo
Mezza cerniera con piano di riflessione selezionato → cerniera a pellicola speculare
Suggerimento: Specchia di Part accetta solo i tre piani di base e quindi non può essere utilizzato in questo caso.
Infine, due parametri definiscono la dimensione della cerniera della pellicola:
L'angolo di piega è controllato dal vincolo ArcAngle dello schizzo intermedio e può essere modificato nella sua Vista Proprietà.
Ma noi siamo dei veri progettisti e abbiamo dato un nome correttamente ai vincoli e alle dimensioni dei nostri schizzi, quindi possiamo gestire l'angolo di controllo tramite Python.
Alcune righe di codice di base da incorporare in un contesto GUI potrebbero apparire così:
doc=App.ActiveDocument
sketch=doc.getObjectsByLabel('IntermediateSketch')[0]
...
sketch.getDatum('ArcAngle')
...
sketch.setDatum('ArcAngle',App.Units.Quantity('50.000000 deg'))
doc.recompute(None,True,True)
Una breve spiegazione:
doc = App.ActiveDocument
: Per indirizzare il documento attivo tramite un alias chiamato docsketch = doc.getObjectsByLabel('IntermediateSketch')[0]
: Per indirizzare lo sketch pertinente tramite l'alias sketch.
0
per scegliere il primo oggetto nell'elenco. (Non si suppone che nessun altro oggetto abbia la stessa etichetta e quindi non ci si deve preoccupare degli altri elementi nell'elenco.)sketch.getDatum('ArcAngle')
: Restituisce il valore corrente del vincolo dimensionale ArcAngle (nella vista Report)sketch.setDatum('ArcAngle', App.Units.Quantity('50.0 deg'))
: Imposta il valore di ArcAngle a 50°
doc.recompute(None,True,True)
: Per aggiornare l'intero documento e mostrare anche le modifiche della geometria dipendente.
Due metà di un pezzo di materiale a clip devono essere fissate alla cerniera, una sul lato statico e una sul lato mobile.
Due metà di una semplice clip
Il lato statico è semplice:
Cerniera della pellicola e metà statica in posizione di modellazione → cerniera della pellicola con metà statica riposizionata e fusa
Ma il lato mobile è diverso: la metà correlata alla geometria della clip deve spostarsi nella posizione corretta prima che venga avviato un (nuovo) calcolo di un'operazione di fusione.
A questo punto manca una funzione "Attacco con offset" come quella di Assembly3 per attaccare la geometria della clip a una delle facce mobili. Ma dopo un po' di esperimenti e modifiche si trova che:
Tenendo presente questo, un flusso di lavoro potrebbe essere il seguente:
La metà mobile sarà attaccata ad un angolo del lato della cerniera mobile (Modalità mappa OXZ: vertice, bordo, bordo)
Col senno di poi, sarebbe stato più saggio fornire la geometria di attacco con IntermediateSketch per evitare un'altra fonte del problema di denominazione topologica.
La clip finora e la metà mobile in posizione di modellazione → clip finita con collegato e
fuso metà mobile
Ora il risultato dovrebbe essere un'unica clip solida, che può essere chiusa e aperta modificando l'ArcAngle della cerniera della pellicola. Angoli consentiti: da 0,1° a 180°, la sezione della pellicola non deve essere dritta e una chiusura superiore non ha senso. (A 180° l'oggetto potrebbe fondersi in aree tangenti o sovrapposte, ma un piccolo spazio in più potrebbe aiutare se ciò non fosse accettabile.)
Clip quasi chiusa → Clip mezza chiusa → Clip in condizione di stampo