Parte

From FreeCAD Documentation
Revision as of 04:55, 6 August 2021 by SandroDN (talk | contribs)

Parte

Posizione nel menu
Nessuno
Ambiente
Tutti
Avvio veloce
Nessuno
Introdotto nella versione
0.17
Vedere anche
Gruppo, PartDesign Corpo

Descrizione

Una Parte (internamente chiamata App Part) è un contenitore per scopi generali che contiene un gruppo di oggetti in modo che essi possano essere spostati in blocco come una singola unità nella vista 3D.

L'elemento Parte è stato sviluppato per essere l'elemento di base per creare assemblaggi meccanici. In particolare, ha lo scopo di disporre oggetti che hanno una forma topologica, come le primitive di Part, i corpi di PartDesign, e altre funzioni di Part. Parte fornisce un Origine con assi X, Y e Z locali e piani standard; questa origine viene utilizzata come riferimento per posizionare e collegare quegli altri oggetti. Inoltre, le Parti possono essere nidificate all'interno di altre Parti per creare un grande assieme da sotto-assiemi più piccoli.

Sebbene sia destinato principalmente a corpi solidi, Parte può essere utilizzato per gestire qualsiasi oggetto che abbia una proprietà Posizionamento, quindi può anche contenere Funzioni Mesh, schizzi e altri oggetti derivati dalla classe App GeoFeature.

Non confondere il Corpo di PartDesign con la Parte. Il primo è un oggetto specifico utilizzato in PartDesign, destinato a modellare un singolo solido contiguo mediante le funzioni di PartDesign. Invece, la Parte non viene utilizzata per la modellazione, ma solo per disporre diversi oggetti nello spazio, per creare degli assemblaggi.

Lo strumento Parte non è definito da un particolare ambiente di lavoro, ma dal sistema base; di conseguenza lo si trova nella barra degli strumenti struttura, che è disponibile in tutti gli ambienti di lavoro. Per raggruppare gli oggetti arbitrariamente senza considerare la loro posizione, utilizzare Gruppo; questo oggetto non influenza i posizionamenti degli elementi che contiene, è essenzialmente solo una cartella che viene utilizzata per mantenere organizzata la vista ad albero.

A sinistra: elementi all'interno di una Parte nella vista ad albero. A destra: oggetti posizionati nello spazio, riferiti all'Origine della Parte.

Utilizzo

  1. Premere il pulsante Parte. Viene creata una parte vuota che diventa automaticamente attiva.
  2. Per aggiungere oggetti a una parte, trascinarli e rilasciarli sulla parte nella vista ad albero.
  3. Per rimuovere oggetti da una parte, trascinarli fuori dalla parte e sull'etichetta del documento nella parte superiore della vista ad albero.

Note

  • A partire dalla v0.19, un dato oggetto può appartenere solo ad una singola Parte.
  • Fare doppio clic sulla Parte nella vista ad albero o aprire il menu contestuale (tasto destro del mouse) e selezionare Attiva/disattiva la parte per attivare o disattivare la Parte. Se un'altra Parte è attiva, sarà disattivata. Vedere Stato attivo per maggiori informazioni.

Limitazioni

  • Al momento, i metodi Snap di Draft non funzionano sui contenitori di Parti selezionati né sugli oggetti al loro interno.
  • Una Parte non ha una forma topologica, quindi operazioni 3D come le operazioni booleane non possono essere utilizzate su una parte. Ad esempio, non è possibile selezionare due parti ed eseguire una Unione o un Taglio con esse.

Proprietà

Una Parte è internamente chiamata App Part (App::Part class), e deriva da un App GeoFeature (App::GeoFeature class), quindi condivide la maggior parte delle proprietà di quest'ultimo.

Oltre alle proprietà descritte in App GeoFeature, la classe App Part ha alcune proprietà che la aiutano a gestire le informazioni nel contesto di un assieme, ad esempio, DatiType, DatiId, DatiLicense, DatiLicenseURL, DatiColor, e DatiGroup.

Queste sono le proprietà disponibili nell'editore delle proprietà. Le proprietà nascoste possono essere mostrate usando il comando Mostra tutto nel menu contestuale dell'editore delle proprietà.

Dati

Base

  • DatiType (String): una descrizione per questo oggetto. Per impostazione predefinita, è una stringa vuota "".
  • DatiId (String): un numero di identificazione o un numero di parte per questo oggetto. Per impostazione predefinita, è una stringa vuota "".
  • DatiLicense (String): un campo per specificare la licenza per questo oggetto. Per impostazione predefinita, è una stringa vuota "".
  • DatiLicenseURL (String): un campo per specificare l'indirizzo web della licenza o del contratto per questo oggetto. Per impostazione predefinita, è una stringa vuota "".
  • DatiColor (Color): una serie di quattro valori RGBA a virgola mobile (r,g,b,a) per definire il colore dell'oggetto; di default è (1.0, 1.0, 1.0, 1.0), che viene visualizzato come [255,255,255] su base 255, white color.
  • DatiPlacement (Placement): la posizione dell'oggetto nella vista 3D. Il posizionamento è definito da un punto Base (vettore), e una Rotazione (asse e angolo). Vedi Posizionamento.
    • DatiAngle: l'angolo di rotazione intorno al DatiAxis. Per impostazione predefinita, è (zero gradi).
    • DatiAxis: il vettore che definisce l'asse di rotazione per il posizionamento. Ogni componente è un valore in virgola mobile tra 0 e 1. Se un valore è superiore a 1, il vettore è normalizzato in modo che la grandezza del vettore sia 1. Per impostazione predefinita, l'asse Z è positivo, (0, 0, 1).
    • DatiPosition: un vettore con coordinate 3D nel punto base. Per impostazione predefinita, è l'origine (0, 0, 0).
  • DatiLabel (String): il nome modificabile dall'utente di questo oggetto, è una stringa arbitraria UTF8.
  • DatiGroup (LinkList): un elenco di oggetti di riferimento. Per impostazione predefinita, è vuoto [].

Proprietà dati nascoste

  • DatiMaterial (Map): mappa con le proprietà del materiale. Per impostazione predefinita, è vuota {}.
  • DatiMeta (Map): mappa con ulteriori meta-informazioni. Per impostazione predefinita, è vuota {}.
  • DatiUid (UUID): L' identificatore univoco universale (UUID) (128-bit number) dell'oggetto. Questo viene assegnato al momento della creazione.
  • DatiLabel2 (String): una descrizione più lunga e modificabile dall'utente di questo oggetto, è una stringa UTF8 arbitraria che può includere nuove linee. Per impostazione predefinita, è una stringa vuota "".
  • DatiExpression Engine (ExpressionEngine): un elenco di espressioni. Per impostazione predefinita, è vuoto [].
  • DatiVisibility (Bool): se visualizzare o meno l'oggetto.
  • DatiOrigin (Link): l'oggetto App Origin è il riferimento posizionale per tutti gli elementi elencati in DatiGroup.
  • Dati_ Group Touched (Bool): se il gruppo viene coinvolto o meno.

Vista

La App Part ha solo cinque proprietà di base App FeaturePython, e non ha proprietà nascoste.

Base

  • VistaDisplay Mode (Enumeration): Group.
  • VistaOn Top When Selected (Enumeration): Disabled (default), Enabled, Object, Element.
  • VistaSelection Style (Enumeration): Shape (default), BoundBox. Se l'opzione è Shape, l'intera forma (vertici, bordi e facce) verrà evidenziata nella vista 3D; se è BoundBox verrà evidenziato solo il bounding box.
  • VistaShow In Tree (Bool): se è true, l'oggetto appare nella vista ad albero. Altrimenti, è impostato come invisibile.
  • VistaVisibility (Bool): se è true, l'oggetto appare nella vista 3D; altrimenti è invisibile. Per impostazione predefinita questa proprietà può essere attivata e disattivata premendo la barra Spazio sulla tastiera.

Concetto di assemblaggio

La Parte è destinata ad essere il blocco di base per la creazione di assemblaggi. A differenza di un corpo di PartDesign, un assemblaggio è inteso come un insieme di elementi separati e distinguibili che sono collegati in qualche modo nel mondo fisico, per esempio, attraverso la pressione, le viti o la colla.

Esempi che potrebbero essere Parti:

  • Un tavolo di legno che consiste di singoli pezzi di legno (gambe, piano), che sono messi insieme con colla o viti di metallo.
  • Un cuscinetto a sfere composto da più sfere d'acciaio, un anello interno, un fermo, una guarnizione e un anello esterno.
  • Un assemblaggio di una vite con una rondella e un dado corrispondente.

A sinistra: tre singoli solidi contigui, ciascuno modellato da un Corpo di PartDesign.
A destra: i singoli corpi messi insieme all'interno di una Parte per creare un assemblaggio.

In termini generali, quando si importa un file STEP nel programma, l'insieme principale e i suoi sottoinsiemi saranno importati come contenitori di Parti, ognuno dei quali contiene una semplice Funzione Part.

Spiegazione dettagliata

Stato attivo

Un documento aperto può contenere più Parti. Una parte attiva verrà visualizzata nella vista ad albero con il colore di sfondo specificato per il Contenitore attivo, per impostazione predefinita il colore in editor delle preferenze è azzurro. Una parte attiva sarà anche mostrata in grassetto.

Per attivare o disattivare un Parte:

  • Doppio click nella vista ad albero, oppure
  • Aprire il menu contestuale (click tasto destro) e selezionare Attivare la parte.

Note:

  • Lo stato attivo delle Parti è stato sviluppato nella v0.17 in parallelo con lo stato attivo dei Corpo di PartDesign; tuttavia, a partire dalla v0.19 per le Parti tale stato non ha un vero e proprio scopo.
  • Anche quando una Parte è attiva, gli oggetti appena creati non vengono posizionati automaticamente al suo interno. In questo caso, è sufficiente trascinare questi nuovi oggetti e rilasciarli sulla Parte desiderata.
  • Solo una Parte singola alla volta può essere attiva.

Documento con due Parti, di cui la seconda è attiva.

Origine

L'Origine è costituita dai tre assi standard (X, Y, Z) e da tre piani standard (XY, XZ e YZ). A questi elementi possono essere collegati, al momento della creazione, Schizzi e altri oggetti.

A sinistra: Origine di Part nella vista ad albero.
A destra: rappresentazione degli elementi Origine nella vista 3D.

Nota: l'origine è un oggetto App Origin(App::Origin class), mentre gli assi e i piani sono rispettivamente oggetti di tipo App::Linea e App::Piano. Ognuno di questi elementi può essere nascosto e non nascosto singolarmente con la barra Spazio; questo è utile per scegliere il riferimento corretto quando si creano altri oggetti.

Nota 2: tutti gli elementi all'interno della Parte sono riferiti all'Origine della Parte, il che significa che la Parte può essere spostata e ruotata in riferimento al sistema globale di coordinate senza influenzare il posizionamento degli elementi all'interno.

Gestione della visibilità

La visibilità della Parte sostituisce la visibilità di qualsiasi oggetto in essa contenuto. Se la Parte è nascosta, anche gli oggetti in essa contenuti saranno nascosti, anche se la loro proprietà individuale VistaVisibilità è impostata su true. Se la Parte è visibile, allora la VistaVisibilità di ogni oggetto determina se l'oggetto è mostrato o meno.

La visibilità della parte Std determina se gli oggetti raggruppati sotto di essa sono mostrati o meno nella vista 3D .
A sinistra: la Parte è nascosta, quindi nessuno degli oggetti sarà mostrato nella vista 3D.
Destra: la Parte è visibile, quindi ogni oggetto controlla la propria visibilità.

Eredità

Una Parte è formalmente un'istanza della classe App::Part, il cui genitore è il genitore di base App GeoFeature. (App::GeoFeature class), ed è incrementato con un'estensione di Origine.

Diagramma semplificato delle relazioni tra gli oggetti principali del programma. La classe App::Part è un semplice contenitore che ha una posizione nello spazio 3D e ha un'origine per controllare il posizionamento degli oggetti raggruppati sotto di essa.

Script

Vedere anche: Script di base per FreeCAD, e script di oggetti.

Vedere Funzione Part per le informazioni generali sull'aggiunta di oggetti al documento.

Una Parte (App Part) viene creata con il metodo del documento addObject(). Una volta che una Parte esiste, altri oggetti possono essere aggiunti ad essa con i metodi di questa Parte addObject() o addObjects().

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::Part", "Part")

bod1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
bod2 = App.ActiveDocument.addObject("Part::Box", "Box")

obj.addObjects([bod1, bod2])
App.ActiveDocument.recompute()

Non si può creare uno script App::Part. Tuttavia, è possibile aggiungere un ruolo App::Part a uno script Part::FeaturePython usando il seguente codice:

class MyGroup(object):
    def __init__(self, obj=None):
        self.Object = obj
        if obj:
            self.attach(obj)

    def __getstate__(self):
        return

    def __setstate__(self, _state):
        return

    def attach(self, obj):
        obj.addExtension('App::OriginGroupExtensionPython')
        obj.Origin = FreeCAD.ActiveDocument.addObject('App::Origin', 'Origin')

    def onDocumentRestored(self, obj):
        self.Object = obj

class ViewProviderMyGroup(object):
    def __init__(self, vobj=None):
        if vobj:
            vobj.Proxy = self
            self.attach(vobj)
        else:
            self.ViewObject = None

    def attach(self, vobj):
        vobj.addExtension('Gui::ViewProviderOriginGroupExtensionPython')
        self.ViewObject = vobj

    def __getstate__(self):
        return None

    def __setstate__(self, _state):
        return None

App.ActiveDocument.addObject('Part::FeaturePython', 'Group', group.MyGroup(), group.ViewProviderMyGroup(), True)