FreeCAD Logo FreeCAD 1.0
  • English Afrikaans Arabo Bielorusso Catalano Czech German Greek Spanish Spanish Basco Finnish Filippino Français Galiziano Croatian Hungarian Indonesiano Italiano Japanese Kabyle Coreano Lituano Dutch Norvegese Bokmal Polish Portuguese Portuguese Romanian Russian Slovak Slovenian Serbo Swedish Turkish Ukrainian Valenziano Vietnamita Cinese Cinese
  • Funzioni
  • Download
  • Blog
  • Documentazione
    Indice di documentazione Per iniziare Documentazione utenti Il manuale FreeCAD Documentazione degli ambienti di lavoro Documentazione di scripting Python Documentazione codice C++ Tutorial Domande frequenti Politica sulla Privacy Informazioni Su FreeCAD
  • Contribuire
    Come aiutare Sponsor Segnala un bug Fai una richiesta Opportunità di lavoro e ricompense Linee guida per contribuire Manuale degli sviluppatori Traduzioni
  • Comunità
    Codice di condotta Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendario
  • ♥ Donate

Donate

$
Informazioni SEPA
Si prega di intestare il bonifico SEPA a:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Agenzia bancaria: BNP Paribas Fortis
Indirizzo: Rue de la Station 64, 1360 Perwez, Belgium

While Stripe doesn't support monthly donations, you can still become a sponsor! Simply make a one-time donation equivalent to 12 months of support, and you'll gain access to the corresponding sponsoring tier. It's an easy and flexible way to contribute.

If you are not sure or not able to commit to a regular donation, but still want to help the project, you can do a one-time donation, of any amount.

Choose freely the amount you wish to donate one time only.

You can support FreeCAD by sponsoring it as an individual or organization through various platforms. Sponsorship provides a steady income for developers, allowing the FPA to plan ahead and enabling greater investment in FreeCAD. To encourage sponsorship, we offer different tiers, and unless you choose to remain anonymous, your name or company logo will be featured on our website accordingly.

from 1 USD / 1 EUR per month. You will not have your name displayed here, but you will have helped the project a lot anyway. Together, normal sponsors maintain the project on its feet as much as the bigger sponsors.

from 25 USD / 25 EUR per month. Your name or company name is displayed on this page.

from 100 USD / 100 EUR per month. Your name or company name is displayed on this page, with a link to your website, and a one-line description text.

from 200 USD / 200 EUR per month. Your name or company name and logo displayed on this page, with a link to your website and a custom description text. Companies that have helped FreeCAD early on also appear under Gold sponsors.

Instead of donating each month, you might find it more comfortable to make a one-time donation that, when divided by twelve, would give you right to enter a sponsoring tier. Don't hesitate to do so!

Choose freely the amount you wish to donate each month.

Please inform your forum name or twitter handle as a notein your transfer, or reach to us, so we can give you proper credits!

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!

Base (Mod/Drawing)

gdtsvg.py

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.

DrawingAlgos.py

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.

createSVG

Accetta part come argomento, proietta la parte in linee dall'oggetto Drawing.project e poi disegna crea l'svg per ogni linea.

App

Contiene il lato backend del modulo di disegno.

AppDrawing.cpp

Inizializza i vari namespaces, moduli e materiale utilizzato nel modulo di disegno. Genera un errore se non riesce a caricare il modulo Part.

DrawingExport.cpp

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.

FeatureClip.cpp

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.

FeaturePage.cpp

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.

FeatureProjection.cpp

Appiattisce l'oggetto su un'immagine 2D?

FeatureView.cpp

Definisce le proprietà per le visualizzazioni.

FeatureViewAnnotation.cpp

Definisce le proprietà per le annotazioni (per ora solo testo), ha un metodo di esecuzione per aggiornare il testo se modificato/spostato.

FeatureViewPart.cpp

Costruttore per aggiungere proprietà. Ottiene elementi di aspetto per le parti proiettate.

PageGroup.cpp

Aggiunge solo una proprietà per un elenco di pagine, non fa molto altro.

Precompiled.cppp

Solamente #include "PreCompiled.h"

ProjectionAlgos.cpp

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.


Gui

AppDrawingGui.cpp

Inizializza la GUI di disegno.

AppDrawingGuiPy.cpp

Fornisce interfacce di apertura, importazione ed esportazione? Sembra che sia accessibile da Python.

Command.cpp

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à.

DrawingView.cpp

Fa un sacco di cose sulla GUI QT, ho bisogno di leggere di più al riguardo.

TaskDialog.cpp

Crea la finestra di dialogo delle attività sul lato e probabilmente passa ad essa dalla visualizzazione ad albero, a seconda dei casi.

TaskOrthoViews.cpp

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.

ViewProviderPage.cpp

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?)

ViewProviderView.cpp

Non sembra fare molto, anche se sono sicuro che sia importante.

Workbench.cpp

Aggiunge le icone alle barre degli strumenti e cose del genere.

Flusso di lavoro

Flusso del programma

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.

Aggiunta di comandi all'ambiente Disegno

4 semplici passaggi:

  1. Aggiungere una classe a Command.cpp. Seguire gli altri per un esempio della formattazione.
  2. Aggiungere un titolo, un'icona, un tooltip, ecc., ancora una volta, seguire le classi esistenti in command.cpp
  3. Aggiungere la propria classe alla fine di Command.cpp
  4. Aggiungere le proprie informazioni a Workbench.cpp, questo dirà al modulo FreeCAD/Drawing dove posizionare le icone definite in command.cpp nell'effettiva interfaccia di Freecad (le barre degli strumenti, i menu a discesa, ecc.)

Questa pagina è recuperata da https://wiki.freecad.org/Drawing_Documentation

Tieniti aggiornato!
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© The FreeCAD Team. Homepage image credits (top to bottom): ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

Questo progetto è supportato da: , KiCad Services Corp. e altri sponsor

GitHubMigliora questa pagina su GitHub