Questa pagina documenta la comprensione del modulo Drawing di jcc242. Il modulo include i file e le funzioni su cui sta lavorando attualmente e non può ancora essere inserita nel ramo master. La fonte di questi file è il suo Github, ma fate attenzione in quanto è molto instabile!
Script Python che genera snippet SVG per elementi come simboli gd&t, simboli di quotatura ed elementi SVG di base come linee, cerchi e percorsi.
Ha diversi file di supporto che non fanno molto. Eseguire DrawingTest.py per creare un gruppo di icone SVG nella directory delle icone che visualizza in anteprima varie icone nel file gdtsvg.py. settingslist.py, dimesettings e convert.py sono tutti deprecati dai metodi di impostazione precedenti e dovrebbero probabilmente essere rimossi man mano che il ramo Drawing si avvicina alla fusione in master.
Crea linee SVG da un elenco di vertici, supporta sia i bordi nascosti che quelli visibili. Probabilmente dovrebbe essere unito a gdtsvg.py man mano che il file matura.
Accetta part come argomento, proietta la parte in linee dall'oggetto Drawing.project e poi disegna crea l'svg per ogni linea.
Contiene il lato backend del modulo di disegno.
Inizializza i vari namespaces, moduli e materiale utilizzato nel modulo di disegno. Genera un errore se non riesce a caricare il modulo Part.
Due classi: SVGOutput e DXFOutput. Entrambi contengono metodi per pubblicare il codice nella rispettiva lingua. In genere richiedono un oggetto con il typedef appropriato e talvolta alcune informazioni identificative aggiuntive.
Metodi di callback (?) per il clipping delle feature della la GUI, così sembrerebbe. Chiamato da solo creerà il percorso della clip, se ShowFrame.getValue è impostato su TRUE mostrerà anche il bordo della cornice.
Gestisce le visualizzazioni.
onChanged() per fare delle cose quando le proprietà vengono modificate.
execute() per ricalcolare una feature view, o almeno così afferma. Sembra che contenga elementi per verificare la presenza di testi modificabili e salvare disegni. È necessario indagare ulteriormente.
getEditableTextsFromTemplate() per recuperare testo che può essere modificato da FreeCAD da un file SVG.
Appiattisce l'oggetto su un'immagine 2D?
Definisce le proprietà per le visualizzazioni.
Definisce le proprietà per le annotazioni (per ora solo testo), ha un metodo di esecuzione per aggiornare il testo se modificato/spostato.
Costruttore per aggiungere proprietà. Ottiene elementi di aspetto per le parti proiettate.
Aggiunge solo una proprietà per un elenco di pagine, non fa molto altro.
Solamente #include "PreCompiled.h"
Il costruttore esegue semplicemente il metodoexecute() per aggiornare le sue cose
invertY: poiché SVG utilizza il suo asse y al contrario rispetto a ogni altro sistema di coordinate nel mondo, è necessario invertirlo quando si converte da una parte di FreeCAD a una proiezione SVG per la vista del disegno.
getSVG: recupera il codice SVG da DrawingExport. Formati a seconda del tipo di linea (nascosta o meno e alcune altre cose che devo capire).
getDXF: uguale a getSVG tranne che per il formato DXF.
Inizializza la GUI di disegno.
Fornisce interfacce di apertura, importazione ed esportazione? Sembra che sia accessibile da Python.
Gestisce i comandi (dalla barra degli strumenti?) come la creazione di nuovi disegni e altro. Sembra che questo gestisca le chiamate QT dal clic sul pulsante a qualsiasi comando a cui deve andare, ad es. facendo clic sul pulsante CmdDrawingOrthoViews verrà visualizzata la GUI delle viste ortografiche nella finestra di dialogo delle attività.
Fa un sacco di cose sulla GUI QT, ho bisogno di leggere di più al riguardo.
Crea la finestra di dialogo delle attività sul lato e probabilmente passa ad essa dalla visualizzazione ad albero, a seconda dei casi.
Crea la finestra di dialogo delle attività per posizionare le viste ortografiche!!
Fa molti calcoli su dove posizionare le cose (anche calcoli automatici, a quanto pare).
Prende l'input dalla GUI TaskOrthoViews e fa alcune cose con esso. Utilizza il metodo di ereditarietà singola di cui si parla sul sito Web qt.
Il costruttore aggiunge alcune proprietà per gli elementi di visualizzazione. Il distruttore non fa nulla. Associa qualcosa (associa cosa? associa la vista alla pagina?) imposta e ottiene le modalità di visualizzazione (cosa sono le modalità di visualizzazione? cosa fanno e quali sono le opzioni possibili?) Fa qualcosa sull'aggiornamento di alcuni tipi di dati ha un menu contestuale che dice "Mostra disegno", scoprire cosa significa Ha una funzione per fare doppio clic per selezionare la vista (credo?)
showDrawingView sembra fare un po' di lavoro sulle impostazioni: ottiene il documento corrente, imposta l'icona e il titolo della finestra, lo aggiunge alla finestra principale (di FreeCAD?)
Non sembra fare molto, anche se sono sicuro che sia importante.
Aggiunge le icone alle barre degli strumenti e cose del genere.
CanvasView è l'oggetto QGraphicsScene effettivo e DrawingView elabora un elenco di FeatureView collegati per riferimento in /App/FeatureViewPage. DrawingView sceglie quindi la classe QGraphicsItem appropriata (QGraphicsItemViewPart o QGraphicsItemViewDimension) e quindi chiama una funzione in CanvasView per crearla e aggiungerla alla scena.
4 semplici passaggi: