|
|
| Descrizione |
|---|
| MultiCopy consente la duplicazione (copia e incolla) di più oggetti FreeCAD che possono essere etichettati in sequenza e in modo personalizzato. Versione macro: 1.0.1 Ultima modifica: 18-03-2021 Versione FreeCAD: 0.17 and above Download: ToolBar Icon Autore: Melwyncarlo |
| Autore |
| Melwyncarlo |
| Download |
| ToolBar Icon |
| Link |
| MultiCopy.zip Personal Github - MultiCopy FC Github - MultiCopy FC Forum - MultiCopy Raccolta di macro Come installare le macro Personalizzare la toolbar |
| Versione macro |
| 1.0.1 |
| Data ultima modifica |
| 18-03-2021 |
| Versioni di FreeCAD |
| 0.17 and above |
| Scorciatoia |
| Nessuna |
| Vedere anche |
| Nessuno |
Descrizione
'MultiCopy' è una macro utente da utilizzare all'interno dell'applicazione FreeCAD. MultiCopy consente di duplicare (copia e incolla) più oggetti FreeCAD, che possono essere etichettati in sequenza e in modo personalizzato.
Questa è l'icona di MultiCopy Macro.
La macro MultiCopy può essere scaricata utilizzando il gestore di componenti aggiuntivi integrato Addon Manager nel software FreeCAD.
Caratteristiche principali
- Due metodi di input: tramite mouse o tastiera (comandi di incolla codice)
- Supporto per i metodi di copia standard e copia semplice
- Duplicazione tra due documenti diversi
- Eliminazione degli oggetti selezionati dopo la duplicazione
- Duplicazione con o senza dipendenze
- Aggiunta di separatori di etichette personalizzati
- Aggiunta di numerazione con spaziatura alle etichette
- Tipi di numerazione: numeri comuni, numeri romani maiuscoli/minuscoli e caratteri alfabetici maiuscoli/minuscoli
- Comandi di incolla codice unici che consentono la duplicazione multipla in modo procedurale e in cicli annidati
- Disponibili sia metodi CUI che GUI
Finestra di dialogo principale di MultiCopy Macro
Installazione
Linux
MultiCopy può essere installato manualmente, in modo simile all'installazione su Windows, oppure tramite il terminale e i relativi comandi, come indicato nel file INSTALL.
Di default, il terminale dei comandi Linux può essere avviato premendo contemporaneamente i seguenti tasti della tastiera:
Control + Alt + T
Windows
MultiCopy può essere installato seguendo questi due passaggi:
- Scaricare il file MultiCopy.zip.
- Estrarre il contenuto del file ZIP nella cartella delle macro utente di FreeCAD.
Per impostazione predefinita, la cartella delle macro utente di FreeCAD dovrebbe trovarsi in:
C:/Users/User_Name/AppData/Roaming/FreeCAD/Macro
Utilizzo - Metodo GUI
MultiCopy può essere caricato seguendo questi passaggi:
- Avviare l'applicazione FreeCAD.
- Andare a Macro → Macro ....
- Fare clic sulla scheda Macro utente nella finestra di dialogo a comparsa.
- Selezionare MultiCopy.FCMacro.
- Fare clic su Execute.
Prima di caricare la macro MultiCopy, selezionare uno o più oggetti dal documento FreeCAD attivo, quindi caricare la macro. Successivamente, seguire le istruzioni nella finestra di dialogo, inserire i dati richiesti e fare clic sul pulsante "Paste". In caso di errore o avviso, si verrà automaticamente informati. Qualora si verificasse un errore imprevisto, segnalarlo indicando la versione di FreeCAD, descrivendo i passaggi eseguiti e specificando se (e in che misura) è stato generato un output.
Utilizzo - Metodo CUI (console Python)
Prima di avviare l'operazione MultiCopy, selezionare uno o più oggetti dal documento FreeCAD attivo.
Per avviare la finestra di dialogo GUI:
import MultiCopy
MultiCopy.Launch()
Per eseguire l'operazione tramite terminale:
Il comando MultiCopy è il seguente:
Run (paste_code, copy_type=True, delete_selection=False, paste_document_label=None)
I parametri del comando MultiCopy sono i seguenti:
1. Name : paste_code
Type : String
Is Optional : False
Description : The paste code commands string.
For indentations, use \'\\t\'.
For line breaks, use \'\\n\'.
2. Name : copy_type
Type : Boolean or String or Integer
Is Optional : True
Description : The copy operation mode.
Acceptable Values : 'Standard', 'Simple',
True, False,
1, 2
Default Value : True
3. Name : delete_selection
Type : Boolean
Is Optional : True
Description : Se impostato su true, gli oggetti selezionati vengono eliminati dopo l'operazione MultiCopy.
Default Value : False
4. Name : paste_document_label
Type : String or FreeCAD.Document
Is Optional : True
Description : L'etichetta del documento in cui incollare, oppure l'oggetto documento stesso.
Default Value : FreeCAD.ActiveDocument
Esempio 1 :
Per incollare gli oggetti selezionati nel documento attualmente attivo come copia standard e per non eliminare le selezioni al termine dell'operazione.
import MultiCopy
some_paste_code_commands = 'from 1 to 2 :\n\t[1] = SomeName_{n#}'
MultiCopy.Run(some_paste_code_commands)
Esempio 2 :
Per incollare gli oggetti selezionati in un altro documento come una semplice copia e per eliminare le selezioni al termine dell'operazione.
import MultiCopy
some_paste_code_commands = 'from 1 to 2 :\n\t[1] = SomeName_{n#}'
MultiCopy.Run(some_paste_code_commands, True, True, 'SomeDocumentLabel')
Incollare i comandi del codice
MultiCopy Macro lista 'Paste Code Commands'
I due comandi ricorrenti nella loro forma generica sono i seguenti:
from ... to ... :[...] = ...
Durante l'inserimento dei comandi di incolla del codice nell'apposita casella di testo, nella parte inferiore della casella sono presenti tre indicatori luminosi colorati:
- Il nero indica che la casella di testo è attiva e che l'utente sta inserendo i comandi di incolla del codice.
Il rosso indica che la casella di testo non è attiva e che i comandi inseriti dall'utente sono sintatticamente errati. Il verde indica che la casella di testo non è attiva e che i comandi inseriti dall'utente sono sintatticamente corretti.
Esempio 1
from 1 to 3 :
[1] = {1}-Something_{n#}
I valori 1 e 3 rappresentano l'intervallo di duplicazione in cui entrambi i valori sono INCLUSIVI. Il primo valore (da) deve essere sempre MINORE O UGUALE al secondo valore (a). I valori (insieme) possono assumere la forma di uno dei cinque tipi di numerazione (check 'Key Features').
[1] rappresenta il primo oggetto' da un elenco presumibilmente selezionato dall'utente.
{1} rappresenta il nome dell'etichetta del primo oggetto.
{n#} rappresenta unetichetta di numerazione del tipo 'Numeri ordinari. (maggiori dettagli in seguito)
NOTA che la corretta indentazione delle tabulazioni è fondamentale per i comandi; non può essere sostituita con spazi.
Le parentesi quadre vengono utilizzate solo per i comandi del secondo tipo generico. Le parentesi quadre [ e ] si trovano sempre a sinistra del comando; mentre le parentesi graffe { e } si trovano sempre a destra del comando.
Supponiamo che il nome dell'etichetta originale del primo oggetto sia Body. Quindi, i comandi precedenti genererebbero un insieme di oggetti duplicati (del primo oggetto), ciascuno etichettato come segue:
Body-Something_1 Body-Something_2 Body-Something_3
Rappresentazione dell'oggetto
Sia i un oggetto arbitrario, l'i-esimo, da un elenco predefinito di oggetti scelti dall'utente.
[i] rappresenta l'i-esimo oggetto senza dipendenze (impostazione predefinita)
[i|0] rappresenta l'i-esimo oggetto senza dipendenze (un'altra forma)
[i|1] rappresenta l'i-esimo oggetto CON dipendenze incluse
Etichette di numerazione
{n#} o {N#} sono del tipo 'Numeri ordinari'
{R#} o {ru#} o {RU#} sono del tipo 'Numeri romani maiuscoli'
{r#} o {rl#} o {RL#} sono del tipo 'Numeri romani minuscoli'
{A#} o {au#} o {AU#} sono del tipo 'Alfabeto maiuscolo'
{a#} o {al#} o {AL#} sono del tipo 'Alfabeto minuscolo'
Un'etichetta di numerazione può avere due opzioni aggiuntive:
{n#X}Riempimento (di 'X' cifre){n#X|i1}Assegnazione del livello del ciclo annidato (a un ciclo contrassegnato come 'i1')
In caso di assegnazione di livelli di ciclo annidati SENZA riempimento, procedere come segue:
{n#0|i1}OPPURE{n#|i1}
Esempio 2
from 1 to 2 : i1 :
from a to b : i2 :
[1|1] = Pasted-{1}-{n#3|i1}-{AU#0|i2}
Qui gli oggetti vengono incollati insieme alle relative dipendenze. L'etichetta 'Numeri ordinari' ha un padding di '3', mentre l'etichetta 'Alfabeto maiuscolo' ha un padding di '0'.
NOTARE come il ciclo 'da-a' utilizzi l'alfabeto minuscolo; tuttavia, l'etichetta verrà visualizzata in maiuscolo.
I comandi sopra riportati genereranno un insieme di oggetti duplicati (del primo oggetto), ciascuno etichettato come segue:
Pasted-Body-001-A Pasted-Body-001-B Pasted-Body-002-A Pasted-Body-002-B
MultiCopy Macro 'Comandi Paste Code'
Segnale di INPUT
MultiCopy Macro 'Comandi Paste Code'
Segnale SCORRETTO
MultiCopy Macro 'Comandi Paste Code Commands'
Segnale CORRETTO
Note
| (1) | Esistono alcune inevitabili contraddizioni nella nomenclatura tra numeri romani e caratteri alfabetici. Ad esempio: c, v, i, x, ecc. |
| (2) | Per impostazione predefinita, i numeri romani hanno la precedenza sui caratteri alfabetici. |
| (3) | Le dipendenze si applicano solo alla "Copia standard"; la loro applicazione alla "Copia semplice" verrà automaticamente ignorata. |
Script
__Title__ = "MultiCopy"
__Author__ = "Melwyncarlo"
__Version__ = "1.0.1"
__Date__ = "2021-03-18"
__Comment__ = "MultiCopy allows the duplication (copy and paste) of "\
"multiple FreeCAD objects that can be labelled sequentially "\
"and in a custom manner."
__Web__ = "https://github.com/melwyncarlo/MultiCopy"
__Wiki__ = "https://wiki.freecad.org/index.php?title=Macro_MultiCopy"
__Icon__ = "MultiCopy_UI_Files/MultiCopy.svg"
__Help__ = "Select one or more FreeCAD objects, then click on the "\
"MultiCopy button/macro, and follow the instructions in the dialog box."
__Status__ = "stable"
__Requires__ = "Freecad >= v0.17"
__Communication__ = "https://github.com/melwyncarlo/MultiCopy/issues"
__Files__ = "MultiCopy_UI_Files/MultiCopy_Main_Dialog.ui, "\
"MultiCopy_UI_Files/MultiCopy_Commands_Dialog.ui, "\
"MultiCopy_UI_Files/mc_d_imgs.gif, "\
"MultiCopy_UI_Files/MultiCopy.svg"
# OS: Ubuntu 18.04.5 LTS
# Word size of OS: 64-bit
# Word size of FreeCAD: 64-bit
# Version: 0.18.4.
# Build type: Release
# Python version: 3.6.8
# Qt version: 5.9.5
# Coin version: 4.0.0a
# OCC version: 7.3.0
# Locale: English/UnitedKingdom (en_GB)
# OS: Ubuntu 18.04.5 LTS (LXDE/Lubuntu)
# Word size of OS : 64-bit
# Word size of FreeCAD: 64-bit
# Version: 0.19
# Build type: Release
# Branch: unknown
# Hash: 32200b604d421c4dad527fe587a7d047cf953b4f
# Python version: 3.6.9
# Qt version: 5.9.5
# Coin versio: 4.0.0a
# OCC version: 7.3.0
# Locale: English/UnitedKingdom (en_GB)
Temporary code for external macro link. Do not use this code. This code is used exclusively by Addon Manager. Link for optional manual installation: Macro
# This code is copied instead of the original macro code
# to guide the user to the online download page.
# Use it if the code of the macro is larger than 64 KB and cannot be included in the wiki
# or if the RAW code URL is somewhere else in the wiki.
from PySide import QtGui, QtCore
diag = QtGui.QMessageBox(QtGui.QMessageBox.Information,
"Information",
"This macro must be downloaded from this link\n"
"\n"
"https://raw.githubusercontent.com/melwyncarlo/MultiCopy/main/MultiCopy.FCMacro" + "\n"
"\n"
"Quit this window to access the download page")
diag.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
diag.setWindowModality(QtCore.Qt.ApplicationModal)
diag.exec_()
import webbrowser
webbrowser.open("https://raw.githubusercontent.com/melwyncarlo/MultiCopy/main/MultiCopy.FCMacro")
Link
[1] MultiCopy Github Repository
[2] FreeCAD Macros Github Repository - MultiCopy
[3] FreeCAD Forum Discussion Page - MultiCopy
Questa pagina è recuperata da https://wiki.freecad.org/Macro_MultiCopy