Makro Mehrfach Kopieren
| Beschreibung |
|---|
| Mehrfach Kopieren ermöglicht das Duplizieren (Kopieren und Einfügen) mehrerer FreeCAD-Objekte, die sequenziell und individuell beschriftet werden können. Versionsmakro : 1.0.1 Datum der letzten Änderung : 2021-03-18 FreeCAD version : 0.17 und neuer Herunterladen : Werkzeugleisten-Symbol Autor: Melwyncarlo |
| Autor |
| Melwyncarlo |
| Herunterladen |
| Werkzeugleisten-Symbol |
| Links |
| MultiCopy.zip Personal Github - MultiCopy FC Github - MultiCopy FC Forum - MultiCopy Makros Rezepte Wie man Makros installiert Symbolleisten anpassen |
| Macro-Version |
| 1.0.1 |
| Datum der letzten Änderung |
| 2021-03-18 |
| FreeCAD-Version(s) |
| 0.17 und neuer |
| Standardverknüpfung |
| None |
| Siehe auch |
| None |
Beschreibung
'Mehrfach Kopieren' ist ein vom Benutzer erstelltes Makro, das innerhalb der FreeCAD-Anwendung verwendet werden kann. Mehrfach Kopieren ermöglicht das Duplizieren (Kopieren und Einfügen) mehrerer FreeCAD-Objekte, die sequenziell und nach Belieben beschriftet werden können.
Dies ist das Symbol des Makros Mehrfach Kopieren.
Das Makro Mehrfach Kopieren kann über den integrierten AddonManager innerhalb der FreeCAD-Software heruntergeladen werden.
Schlüsselfunktionen
- Zwei Eingabemethoden: per Maus oder per Tastatur (Befehle zum Einfügen von Code)
- Unterstützung für Standardkopieren und einfaches Kopieren
- Duplizieren über zwei verschiedene Dokumente hinweg
- Ausgewählte Objekte nach dem Duplizieren löschen
- Duplizieren mit oder ohne Abhängigkeiten
- Benutzerdefinierte Trennzeichen für Beschriftungen hinzufügen
- Beschriftungen mit aufgefüllter Nummerierung versehen
- Nummerierungsarten: Normale Ziffern, römische Ziffern in Groß-/Kleinbuchstaben und alphabetische Zeichen in Groß-/Kleinbuchstaben
- Einzigartige 'Paste Code Commands', die eine mehrfache Duplizierung sowohl prozedural als auch in verschachtelten Schleifen ermöglichen
- Sowohl CUI- als auch GUI-Methoden verfügbar
Makro Mehrfach-Kopie Hauptdialog
Installation
Linux
Mehrfach Kopieren kann manuell installiert werden, ähnlich wie bei einer Windows-Installation, oder mithilfe des Befehlsterminals und den entsprechenden Befehlen, wie in der Datei INSTALL.
Standardmäßig kann das Linux-Befehlsterminal durch gleichzeitiges Drücken der folgenden Tasten gestartet werden:
Control + Alt + T
Windows
Mehrfach Kopieren kann mit Hilfe der folgenden zwei Schritte installiert werden :-
- Die Datei MultiCopy.zip herunterladen.
- Entpacke den Inhalt der ZIP-Datei in das Verzeichnis für FreeCAD-Benutzermakros.
Standardmäßig sollte sich das FreeCAD-Benutzer-Makroverzeichnis unter folgendem Pfad befinden:
C:/Users/User_Name/AppData/Roaming/FreeCAD/Macro
Anwendung - Methode Grafische Benutzeroberfläche
Mehrfach-Kopie kann durch Ausführen der folgenden Schritte geladen werden: -
- Die FreeCAD-Applikation starten.
- Gehe zu Makro → Makros ....
- Auf den Reiter Benutzermakros im erscheinenden Dialog klicken.
- Wähle MultiCopy.FCMacro.
- Auf Ausführen klicken.
Bevor das Mehrfach Kopieren-Makro geladen wird, zunächst ein oder mehrere Objekte aus dem aktiven FreeCAD-Dokument auswählen und dann das Makro laden. Anschließend die Anweisungen im Dialogfeld befolgen, die erforderlichen Eingaben eingeben und auf die Schaltfläche Einfügen klicken. Im Falle eines Fehlers oder einer Warnung wird man automatisch benachrichtigt. Sollte ein unerwarteter Fehler auftreten, uns diesen bitte mitteilen, indem die FreeCAD-Version angegeben wird, die durchgeführten Schritte beschrieben werden und angeben wird, ob (und in welchem Umfang) eine Ausgabe erzeugt wurde.
Anwendung - CUI-Methode (Python-Konsole)
Bevor der Mehrfach Kopieren-Vorgang ausführt wird, zunächst ein oder mehrere Objekte aus dem aktiven FreeCAD-Dokument auswählen.
Um den Dialog der grafischen Benutzeroberfläche zu starten:
import MultiCopy
MultiCopy.Launch()
Um den terminal-basierten Vorgang auszuführen:
Der Befehl Mehrfach Kopieren lautet wie folgt:
Run (paste_code, copy_type=True, delete_selection=False, paste_document_label=None)
Die Befehlsparameter für Mehrfach Kopieren sind die folgenden:
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 : If true, the selected objects are
deleted after the MultiCopy operation.
Default Value : False
4. Name : paste_document_label
Type : String or FreeCAD.Document
Is Optional : True
Description : The label of the document to paste to,
or the document object itself.
Default Value : FreeCAD.ActiveDocument
Beispiel 1:
Die ausgewählten Objekte als Standardkopie in das aktuell aktive Dokument einfügen und die Auswahl nach dem Vorgang nicht löschen.
import MultiCopy
some_paste_code_commands = 'from 1 to 2 :\n\t[1] = SomeName_{n#}'
MultiCopy.Run(some_paste_code_commands)
Beispiel 2:
Die ausgewählten Objekte als einfache Kopie in ein anderes Dokument einfügen und die Auswahl nach dem Vorgang löschen.
import MultiCopy
some_paste_code_commands = 'from 1 to 2 :\n\t[1] = SomeName_{n#}'
MultiCopy.Run(some_paste_code_commands, True, True, 'SomeDocumentLabel')
Code-Befehle einfügen
Makro Mehrfach-Kopie 'Code einfügen-Befehls'-Liste
Die beiden wiederkehrenden Befehle in ihrer generischen Form lauten wie folgt:
from ... to ... :[...] = ...
Bei der Eingabe der Befehle zum Einfügen von Code in das entsprechende Eingabefeld gibt es drei Signale in Form von farbigen Streifen am unteren Rand des Textfeldes:
- Schwarz bedeutet, dass das Textfeld fokussiert ist und dass der Benutzer gerade die Befehle zum Einfügen von Code darin eingibt.
- Rot bedeutet, dass der Fokus aus dem Textfeld entfernt wurde und dass die vom Benutzer eingegebenen Befehle SYNTAKTISCH FALSCH sind.
- Grün bedeutet, dass der Fokus aus dem Textfeld entfernt wurde und dass die vom Benutzer eingegebenen Befehle SYNTAKTISCH KORREKT sind.
Beispiel 1
from 1 to 3 :
[1] = {1}-Something_{n#}
Die 1 und 3 Werte stellen den Duplikationsbereich dar, wobei beide Werte INKLUSIVE sind. Der erste Wert (von) muss immer KLEINER ODER GLEICH dem zweiten Wert (bis) sein. Die Werte (zusammen) können eine der fünf Nummerierungsarten annehmen. (prüfe 'Key Features').
[1] repräsentiert das erste Objekt aus einer angenommenen Liste von benutzerdefinierten Objekten.
{1} repräsentiert die Namensbeschriftung des ersten Objekts.
{n#} repräsentiert die Nummerierungsbeschriftung vom Typ 'Gewöhnliche Zahlen'. (mehr dazu später)
HINWEIS die korrekten Tab-Einrückungen sind für die Befehle sehr wichtig; sie können nicht durch Leerzeichen ersetzt werden.
Klammern werden nur für Befehle des zweiten generischen Typs verwendet. Die eckigen Klammern [ und ] stehen immer auf der linken Seite des Befehls, während die geschweiften Klammern { und } immer auf der rechten Seite des Befehls stehen.
Nehmen wir an, der ursprüngliche Name des ersten Objekts lautet Body. Dann würden die oben genannten Befehle eine Reihe von duplizierten Objekten (des ersten Objekts) ausgeben, die jeweils wie folgt benannt sind:
Body-Something_1 Body-Something_2 Body-Something_3
Objektdarstellung
Sei i ein beliebiges i-tes Objekt aus einer angenommenen Liste von vom Benutzer ausgewählten Objekten.
[i] steht für das i-te Objekt ohne Abhängigkeiten (Standard)
[i|0] steht für das i-te Objekt ohne Abhängigkeiten (eine andere Form)
[i|1] steht für das i-te Objekt MIT Abhängigkeiten
Beschriftungen nummerieren
{n#} oder {N#} gehören zum Typ „Gewöhnliche Ziffern“
{R#} oder {ru#} oder {RU#} gehören zum Typ „Großbuchstaben-Römische Ziffern”
{r#} oder {rl#} oder {RL#} gehören zum Typ „Kleinbuchstaben-Römische Ziffern”
{A#} oder {au#} oder {AU#} gehören zum Typ „Großbuchstaben”
{a#} oder {al#} oder {AL#} gehören zum Typ „Kleinbuchstaben”
Eine Nummerierungsbeschriftung kann zwei zusätzliche Optionen haben:
{n#X}Auffüllen (mit 'X' Stellen){n#X|i1}Verschachtelte Schleifen-Ebenen-Zuweisung (zu einer Schleife mit dem Tag „i1”)
Im Fall einer verschachtelten Schleifenebenenzuweisung OHNE Einrückung, mache:
{n#0|i1}ODER{n#|i1}
Beispiel 2
from 1 to 2 : i1 :
from a to b : i2 :
[1|1] = Pasted-{1}-{n#3|i1}-{AU#0|i2}
Hier werden die Objekte zusammen mit den Abhängigkeiten eingefügt. Die Beschriftung 'Ordinary Numeral' hat einen Abstand von '3' und die Beschriftung 'Upper-case Alphabet' hat einen Abstand von '0'.
HINWEIS wie die 'von-bis'-Schleife Kleinbuchstaben verwendet; die Beschriftung wird jedoch in Großbuchstaben ausgegeben.
Die obigen Befehle würden eine Reihe doppelter Objekte (des ersten Objekts) ausgeben, die jeweils wie folgt beschriftet sind:
Pasted-Body-001-A Pasted-Body-001-B Pasted-Body-002-A Pasted-Body-002-B
'Code einfügen-Befehle' des Makros Mehrfach Kopieren
EINGABE-Signal
'Code einfügen-Befehle' des Makros Mehrfach Kopieren
FEHLERHAFTES-Signal
'Code einfügen-Befehle' des Makros Mehrfach Kopieren
KORREKTES-Signal
Hinweise
| (1) | Es gibt einige unvermeidbare Namenskonflikte zwischen römischen Ziffern und Buchstaben. Beispiele: c, v, i, x usw. |
| (2) | Von ihrer Konzeption her haben römische Ziffern Vorrang vor alphabetischen Zeichen. |
| (3) | Abhängigkeiten gelten nur für 'Standardkopie'; ihre Anwendung auf 'Einfache Kopie' wird automatisch ignoriert. |
Skript
__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")
Verweise
[1] MultiCopy GitHub-Verzeichnis
[2] FreeCAD Macros GitHub-Verzeichnis - MultiCopy
[3] FreeCAD-Forum Disksussionsseite - MultiCopy




