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!

Build Utility

Descrizione
Questa macro fornisce delle utilità di costruzione per assemblare più file di progetto in un unico file.

Versione macro: 1.0
Ultima modifica: 2015-01-21
Versione FreeCAD: All
Download: ToolBar Icon
Autore: Piffpoof
Autore
Piffpoof
Download
ToolBar Icon
Link
Raccolta di macro
Come installare le macro
Personalizzare la toolbar
Versione macro
1.0
Data ultima modifica
2015-01-21
Versioni di FreeCAD
All
Scorciatoia
Nessuna
Vedere anche
Nessuno

Descrizione

Questa macro è pensata per progetti di grandi dimensioni, che coinvolgono centinaia di oggetti. Il suo utilizzo su un piccolo progetto con un singolo file sarebbe inutile e superfluo. Tuttavia, su un progetto di grandi dimensioni con molti oggetti e molti file da unire nel progetto finale, farà risparmiare tempo, eviterà all'utente di dover eseguire azioni ripetitive e rimuoverà gli errori umani.

Installazione

Tutto il codice di buildUtility.FCMacro è contenuto in una macro, quindi per installarla basta copiare il suo codice nell'appropriata directory delle Macro. Dopo, si può invocare Build Utility dal menu Macro, dalla console Python o da un pulsante della barra degli strumenti (il metodo preferito).

  • per informazioni su come installare il codice delle macro vedere la pagina Come installare le macro
  • per informazioni su come installarla abbinata a un pulsante in una barra degli strumenti vedere la pagina Personalizzare la barra degli strumenti

Utilizzo

Build Utility lavora sugli stessi principi dei file di costruzione che vengono utilizzati per assemblare i grandi sistemi software (come FreeCAD). Si utilizza un editor di testo per creare un file di testo che aderisce ai formati richiesti da Build Utility, poi Build Utility legge semplicemente ogni riga del file di testo ed esegue le azioni specificate.

La macro chiede all'utente un "build file", poi lo analizza, ci sono 3 tipi di righe lecite:

  • le righe che iniziano con il carattere di commento "#" che sono ignorate in quanto sono commenti o osservazioni
  • le righe che iniziano con il carattere sub-file "@" che sono ignorate
    Nota: il carattere "@" è per una futura espansione, quando verranno trattati i sub-file
  • tutte le altre righe che possono essere di un file di progetto o di una sotto-directory

L'estensione per il file Utility Build è ".FCBld". Questo serve ad evitare che il file sia usato impropriamente da altre applicazioni.

Si presume che il file specificato nel file build abbia l'estensione ".FCStd". Se la riga inizia con una directory il file di progetto viene letto da quella sottocartella, in caso contrario, si presume la linea specifichi un file di progetto. Le directory all'interno di directory sono supportate come nidificazione di profondità arbitraria. Il formato di specificazione del file è lo stile "Unix" con diversi livelli separati dal carattere barra "/".

Qualsiasi file mancante viene stampato nella Vista Report. Ogni directory mancante è stampata nella Vista Report.

Viene creato un nuovo documento e ogni progetto è un "Project Merged" posto in tale nuovo documento vuoto. Alla fine il documento non viene salvato, deve farlo l'utente, se lo desidera. Quando il file non esiste, il suo nome viene stampato nella vista report

Interfaccia utente

Per questa macro non c'è nessun tipo di GUI. La macro legge un file di testo che è stato preparato con un editor di testo e produce un modello in un documento di output. Basta fare clic sul pulsante nella barra degli strumenti per avviare il processo, non vi è alcuna interazione da parte dell'utente.

Opzioni

Non vi è alcuna interfaccia grafica quindi non ci sono opzioni. Esiste solo l'alternativa di utilizzare uno dei 3 tipi di righe nel file di testo come descritto sopra.

Osservazioni

Per ribadire quanto affermato all'inizio, su un singolo file di un piccolo modello questa macro non è di alcuna utilità. Ma è molto utile per chi modella aerei, locomotive, navi, edifici, impianti o circuiti complessi. Si è scelto l'estensione ".FCBld" sperando che all'interno di FreeCAD possa essere impostato questo standard per i file di compilazione . Si spera che il carattere "@" riservato per il prefisso nella definizione dei file di comando possa essere accettato in futuro e (se necessario) nello sviluppo.

Link

nessuno (fino ad ora)

Script

Icona barra degli strumenti

Macro_Build_Utility.FCMacro

#
#						Build Utility
#                       v 0.0 - build from files and files in sub-folders
#
#***********************************************************************************
# routine to read in a build file and merge all specified projects
"""
This function asks the user for a "build file". It then parses that build file, there
are 3 legal line types:
- lines starting with the comment character "#" which are ignored
- lines starting with the subfile character "@" which are ignored
	Note:	the "@" character is for future enhancement when sub-build files 
			will be handled
- all other lines which may be a project file or a subfolder (sub-directory)
If the line is a subfolder then the project file is read from that subfolder.
Otherwise it is assumed the line specifies a project file.
A new document is created and each project is "Project Merged" into that new and empty document.
The document is not saved at the end, this is left for the user if desired.
If the file does not exist then the file name is Printed to the Report view
"""
"""
Example file:
#this is a sample build file
#==============================
@sub-build-files - not presently inplemented
# first the top-level file
metal
# now some misc files
./black/black
./blue/blue
# file does not exist
zebra 
# folder does not exist
/bear/bear
# multiple files in one sub-folder
./engineering/green
./engineering/grey
#multiple files in hierarchical folders
./externalModules/white
./externalModules/red/red
#./externalModules/red/stackerAssembly - commented out as not currently loading
./externalModules/red/orange
./externalModules/red/level3/yellow
"""
# import statements
import FreeCAD
import os.path
from PySide import QtGui

# UI Class definitions

# Class definitions

# Function definitionss

# Constant definitions
buildTargetDocument = "build_target"
commentTag = "#"
subfileTag = "@"
lineFeed = "\n"
subfolder = "./"
carriageReturn = "\r"
fileSeparator = "/"
fcFileExtension      = ".FCStd"
fcFileExtensionUC  = ".FCSTD"
fcFileExtensionLen = -6

# code ***********************************************************************************
buildFilePathName=QtGui.QFileDialog.getOpenFileName()[0]
if len(buildFilePathName) > 0:
	# set up a new empty "build_target" document
	FreeCAD.newDocument(buildTargetDocument)
	FreeCAD.setActiveDocument(buildTargetDocument)
	FreeCAD.ActiveDocument=FreeCAD.getDocument(buildTargetDocument)
	guiDoc=FreeCADGui.ActiveDocument
	#
	lastFileSeparator = buildFilePathName.rindex(fileSeparator)
	buildFilePath = buildFilePathName[: lastFileSeparator]
	buildFileName = buildFilePathName[lastFileSeparator +1:]
	#
	buildFileContents = open(buildFilePathName,"r")
	buildFileLines = buildFileContents.readlines()
	buildFileContents.close()
	#
	for line in buildFileLines:
		if line[0] == commentTag:
			# line of internal comment
			pass
		elif line[0] == subfileTag:
			# line of sub-build-file (not presently implemented)
			pass
		else:
			# a line which should specify a FreeCAD project file
			# - may be preceded by a sub-directory e.g. "./subdir309/"
			# - project file may be missing file extension
			#
			# if line break at end of file spec then remove
			if line[-1:] == lineFeed:
				line = line[:-1]
			if line[-1:] == carriageReturn:
				line = line[:-1]
			# if no FreeCAD project file extension supplied then append one
			# make an uppercase comparison in case of mixed case
			tempLine = fcFileExtension + line.upper()
			if fcFileExtensionUC != tempLine[fcFileExtensionLen:]:
				line = line + fcFileExtension
			# if there is a leading subdirectory then remove "./" from beginning
			if subfolder[0:2] == line[0:2]:
				line = line[2:]
			projectFileSpec = str(buildFilePath) + str("/") + str(line)
			if os.path.exists(projectFileSpec):
				guiDoc.mergeProject(projectFileSpec)
			else:
				FreeCAD.Console.PrintMessage('project file "' + projectFileSpec + '" not found' + "\n")

	# set view back to "build_target", it is up to user to save it (if they want)
	FreeCAD.setActiveDocument(buildTargetDocument)
	FreeCAD.ActiveDocument=FreeCAD.getDocument(buildTargetDocument)
	FreeCADGui.ActiveDocument=FreeCADGui.getDocument(buildTargetDocument)
	FreeCADGui.SendMsgToActiveView("ViewFit")
	FreeCADGui.activeDocument().activeView().viewAxometric()
#
#OS: Mac OS X
#Word size: 64-bit
#Version: 0.14.3703 (Git)
#Branch: releases/FreeCAD-0-14
#Hash: c6edd47334a3e6f209e493773093db2b9b4f0e40
#Python version: 2.7.5
#Qt version: 4.8.6
#Coin version: 3.1.3
#SoQt version: 1.5.0
#OCC version: 6.7.0
#
#thus ends the macro...

Esempio

State lavorando con alcuni altri reparti della vostra azienda per usare FreeCAD per generare un grande modello CAD per un cliente esterno. Per preparare la presentazione imminente è necessario integrare i modelli rappresentati nei sottosistemi 'black' e 'blue', il dipartimento di ingegneria è responsabile dei sottosistemi 'green' e 'grey' e voi avete il sottosistema 'metal' nel vostro computer. Anche il cliente utilizza FreeCAD e la progettazione deve integrarsi con i suoi sottosistemi "red', e 'yellow'. Il cliente esterno vi ha detto che lo Stacker Assembly non è pronto per l'uso e quindi dovete generare il modello in un vostro file build.

Ci sono un sacco di percorsi di directory da digitare perciò inserite i comandi nel file di testo in Build Utility e dopo potete eseguirli con un semplice clic su un pulsante della barra degli strumenti.

Il contenuto del seguente file di build "buildFile.FCBld" mostra la struttura del file per il progetto descritto sopra.

#this is the build file for the complete assembly
#==============================
@sub-build-files - not presently implemented
# first the top-level file
metal
# now some misc files
./black/black
./blue/blue
# file does not exist
zebra 
# folder does not exist
/bear/bear
# multiple files in one sub-folder
./engineering/green
./engineering/grey
#multiple files in hierarchical folders
./externalModules/white
./externalModules/red/red
#./externalModules/red/stackerAssembly - commented out as not currently loading
./externalModules/red/orange
./externalModules/red/level3/yellow

Una sintesi del file e del modo in cui viene elaborato è:

  • le prime due righe vengono trattate come commenti e tutto quello che segue il segno hash come carattere iniziale viene ignorato
#this is the build file for the complete assembly
#==============================
  • anche la terza riga è ignorata perché il primo carattere è la "e commerciale" che è riservata per un uso futuro in cui i file di comando potranno richiamare altri file di comando
@sub-build-files - not presently implemented
  • la quinta linea è la prima specificazione di un file, il file si trova nella stessa directory del file di build, non in una sottodirectory
metal
  • la settima e l'ottava riga sono due specificazioni di file in cui il file è in una sotto-directory, notare che la sub-directory è del tipo "./black/" dove "black" è il nome della directory, quindi un file chiamato "sheetFold.FCstd" nella directory "outsourcing" appare "./outsourcing/sheetFold"
./black/black
./blue/blue
  • la diciannovesima riga mostra una specificazione di un file che esiste ma che non viene incluso in questa operazione di costruzione
#./externalModules/red/stackerAssembly - commented out as not currently loading
  • le ultime due righe mostrano la specificazione di file che si trova oltre un livello di sub-directory
./externalModules/red/orange
./externalModules/red/level3/yellow


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

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