FreeCAD Logo FreeCAD 1.0
  • Anglais Afrikaans Arabe Biélorusse Catalan Tchèque Allemand Grec Espagnol Espagnol Basque Finnois Philippin Français Galicien Croate Hongrois Indonésien Italien Japonais Kabyle Coréen Lituanien Néerlandais Norvégien classique Polonais Portugais Portugais Roumain Russe Slovaque Slovène Serbe Suédois Turc Ukrainien Valencien Vietnamien Chinois Chinois
  • Fonctions
  • Télécharger
  • Blog
  • Documentation
    Index de la documentation Premiers pas Documentation pour les utilisateurs Manuel de FreeCAD Documentation des ateliers Documentation sur le codage en Python Documentation pour les développeurs Tutoriels Foire aux questions Politique de confidentialité À propos de FreeCAD
  • Contribuer
    Comment aider Sponsor Signaler un bogue Faire une demande de modification (PR) Emplois et financements Guide pour les contributions Manuel pour les développeurs Traductions
  • Communauté
    Code de conduite Forum The FPA GitHub GitLab Codeberg Mastodon Matrix IRC IRC via Webchat Gitter Discord Reddit Twitter Facebook LinkedIn Calendrier
  • ♥ Donate

Donate

$
Informations SEPA
Veuillez configurer votre virement bancaire SEPA pour:
Beneficiary: The FreeCAD project association
IBAN: BE04 0019 2896 4531
BIC/SWIFT: GEBABEBBXXX
Agence bancaire: BNP Paribas Fortis
Adresse: 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!

Macro MultiCopy

Description
MultiCopy permet la duplication (copier-coller) de plusieurs objets FreeCAD qui peuvent être étiquetés séquentiellement et de manière personnalisée.

Version macro : 1.0.1
Date dernière modification : 2021-03-18
Version FreeCAD : version 0.17 et suivantes
Téléchargement : Icône de la barre d'outils
Auteur: Melwyncarlo
Auteur
Melwyncarlo
Téléchargement
Icône de la barre d'outils
Liens
MultiCopy.zip
GitHub personnel - MultiCopy

Github FreeCAD - MultiCopy
Forum FreeCAD - MultiCopy
Page des macros
Comment installer une macro
Comment créer une barre d'outils

Version Macro
1.0.1
Dernière modification
2021-03-18
Version(s) FreeCAD
version 0.17 et suivantes
Raccourci clavier
None
Voir aussi
None

Description

'MultiCopy' est une macro créée et destinée à être utilisée dans l'application FreeCAD. MultiCopy permet la duplication (copier-coller) de plusieurs objets FreeCAD qui peuvent être étiquetés séquentiellement et de manière personnalisée.

   Voici l'icône MultiCopy Macro.

La macro MultiCopy peut être téléchargée en utilisant le Gestionnaire des extensions intégré au logiciel FreeCAD.

Fonctions principales

  • Deux méthodes de saisie : par la souris ou par le clavier (commandes de collage de code).
  • Méthodes de copie standard et de copie simple prises en charge
  • Duplication dans deux documents différents
  • Suppression des objets sélectionnés après la duplication
  • Duplication avec ou sans dépendances
  • Ajout de séparateurs d'étiquettes personnalisés
  • Ajout d'une numérotation supplémentaire aux étiquettes
  • Types de numérotation : Chiffres ordinaires, chiffres romains majuscules/minuscules et caractères alphabétiques majuscules/minuscules.
  • Des "commandes de collage de code" uniques qui permettent la duplication multiple de manière procédurale ainsi que dans des boucles imbriquées.
  • Les deux méthodes CUI et GUI disponibles

Boîte de dialogue principale de la macro MultiCopy

Installation

Linux

MultiCopy peut être installé manuellement, de manière similaire à l'installation de Windows, ou en utilisant le terminal de commande et ses commandes pertinentes, comme indiqué dans le fichier INSTALL.

Par défaut, le terminal de commande Linux peut être lancé en appuyant simultanément sur les touches suivantes du clavier :

Control + Alt + T

Windows

MultiCopy peut être installé à l'aide des deux étapes suivantes :

  1. Téléchargez le fichier MultiCopy.zip file.
  2. Extrayez le contenu du fichier ZIP dans l'emplacement du répertoire de la macro utilisateur de FreeCAD.

Par défaut, le répertoire de la macro utilisateur de FreeCAD doit être situé à :

C:/Users/User_Name/AppData/Roaming/FreeCAD/Macro

Utilisation - Méthode GUI

MultiCopy peut être chargé en effectuant les étapes suivantes :

  1. Lancez l'application FreeCAD.
  2. Allez dans Macro → Macros ....
  3. Cliquez sur l'onglet Macros utilisateur dans la boîte de dialogue contextuelle.
  4. Sélectionnez MultiCopy.FCMacro.
  5. Cliquez sur Execute.

Avant de charger la macro MultiCopy, sélectionnez d'abord un ou plusieurs objets dans le doccument FreeCAD actif, puis chargez la macro. Ensuite, suivez les instructions de la boîte de dialogue, remplissez les entrées requises, et cliquez sur le bouton 'Paste'. En cas d'erreur ou d'avertissement, vous en serez automatiquement informé. Si vous rencontrez une erreur inattendue, communiquez-la en mentionnant la version de FreeCAD, en retraçant les étapes suivies et en précisant si un résultat a été généré (et dans quelle mesure).

Utilisation - Méthode CUI (console Python)

Avant d'exécuter l'opération MultiCopy, sélectionnez d'abord un ou plusieurs objets dans le document FreeCAD actif.

Pour lancer la fenêtre de dialogue GUI :

import MultiCopy

MultiCopy.Launch()

Pour effectuer l'opération sur le terminal:

La commande MultiCopy est la suivante :

Run (paste_code, copy_type=True, delete_selection=False, paste_document_label=None)

Les paramètres de la commande MultiCopy sont les suivants :

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

Exemple 1:

Pour coller les objets sélectionnés dans le document actuellement actif comme une copie standard, et pour ne pas supprimer les sélections après l'opération.

import MultiCopy

some_paste_code_commands = 'from 1 to 2 :\n\t[1] = SomeName_{n#}'
MultiCopy.Run(some_paste_code_commands)

Exemple 2:

Pour coller les objets sélectionnés dans un autre document comme une simple copie, et pour supprimer les sélections après l'opération.

import MultiCopy

some_paste_code_commands = 'from 1 to 2 :\n\t[1] = SomeName_{n#}'
MultiCopy.Run(some_paste_code_commands, True, True, 'SomeDocumentLabel')

Commandes pour coller du code

Liste des commandes « Paste Code Commands » de la macro MultiCopy

Les deux commandes récurrentes dans leur forme générique sont les suivantes :

  1. from ... to ... :
  2. [...] = ...

Pendant la saisie des Commandes de code de collage dans la zone de texte de saisie concernée, il y a trois indications sous forme de bandes colorées situées en bas de la zone de texte :

  1. Noir indique que la zone de texte est focalisée, et que l'utilisateur est en train d'y saisir les commandes du code à coller.
  2. Rouge indique que la zone de texte est en dehors de la focalisation, et que les commandes entrées par l'utilisateur sont SYNTAXIQUEMENT INCORRECTES.
  3. Vert indique que la zone de texte est hors focus et que les commandes saisies par l'utilisateur sont SYNTAXIQUEMENT CORRECTES.

Exemple 1

from 1 to 3 :
     [1] = {1}-Something_{n#}

Les valeurs 1 et 3 représentent la plage de duplication où les deux valeurs sont INCLUSIVES. La première valeur (de) doit toujours être INFÉRIEURE OU ÉGALE à la deuxième valeur (à). Les valeurs (ensemble) peuvent prendre la forme de l'un des cinq types de numérotation (Vérifiez 'Caractéristiques principales').

[1] représente le premier objet d'une liste supposée d'objets sélectionnés par l'utilisateur.
{1} représente le nom de l'étiquette du premier objet.
{n#} représente une étiquette de numérotation du type 'Numériques ordinaires. (on y reviendra, plus tard)

REMARQUEZ que des retraits de tabulation corrects sont cruciaux pour les commandes ; ils ne peuvent pas être remplacés par des espaces.

Les crochets ne sont utilisés que pour les commandes du deuxième type générique. Les crochets [ et ] se trouvent toujours à gauche de la commande ; tandis que les parenthèses { et } se trouvent toujours à droite de la commande.

Laissons le nom de l'étiquette originale du premier objet être Corps. Ensuite, les commandes ci-dessus produiraient un ensemble d'objets dupliqués (du premier objet), chacun étiqueté comme suit :

Body-Something_1
Body-Something_2
Body-Something_3

Représentation de l'objet

Soit i un i-ème objet arbitraire d'une liste supposée d'objets sélectionnés par l'utilisateur.
[i] représente le i-ième objet sans dépendances (par défaut).
[i|0] représente le i-ième objet sans dépendances (autre forme).
[i|1] représente le i-ième objet AVEC des dépendances incluses.

Les étiquettes de numérotation


code>{n#} ou {N#} sont du type "Chiffres ordinaires".
{R#} ou {ru#} ou {RU#} sont du type "Chiffres romains majuscules".
{r#} ou {rl#} ou {RL#} sont du type "Chiffres romains minuscules".
{A#} ou {au#} ou {AU#} sont du type "Alphabet majuscule".
{a#} ou {al#} ou {AL#} sont de type "Alphabet minuscule".

Une étiquette de numérotation peut avoir deux options supplémentaires :

  1. {n#X} Padding (de chiffres 'X').
  2. {n#X|i1} Assignation d'un niveau de boucle imbriquée (à une boucle étiquetée 'i1')

Dans le cas d'une affectation de niveau de boucle imbriquée SANS remplissage, faites :

  1. {n#0|i1} OU
  2. {n#|i1}

Exemple 2

from 1 to 2 : i1 :
     from a to b : i2 :
          [1|1] = Pasted-{1}-{n#3|i1}-{AU#0|i2}

Ici, les objets sont collés ainsi que les dépendances. L'étiquette 'Chiffre ordinaire' a un padding de '3', et l'étiquette 'Alphabet majuscule' a un padding de '0'.

NOTEZ comment la boucle 'from-to' utilise l'alphabet en minuscules ; mais l'étiquette sera sortie en majuscules.
Les commandes ci-dessus produiraient un ensemble d'objets dupliqués (du premier objet) chacun étiqueté comme suit :

Pasted-Body-001-A
Pasted-Body-001-B
Pasted-Body-002-A
Pasted-Body-002-B

Macro MultiCopy Macro « Paste Code Commands »
INPUT Signal

Macro MultiCopy Macro « Paste Code Commands »
INCORRECT Signal

Macro MultiCopy Macro « Paste Code Commands »
CORRECT Signal

Remarques

(1) Il y a quelques inévitables conflits d'appellation entre les chiffres romains et les caractères alphabétiques, par exemple : c, v, i, x, etc.
(2) Par conception, les chiffres romains ont la priorité sur les caractères alphabétiques.
(3) Les dépendances ne s'appliquent qu'à la "copie standard" ; leur application à la "copie simple" sera automatiquement ignorée.

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")
<class="rawcodeurl"><a href="https://raw.githubusercontent.com/melwyncarlo/MultiCopy/main/MultiCopy.FCMacro">raw code</a>


Liens

[1] Dépôt Github de MultiCopy
[2] Dépôt Github des macros FreeCAD - MultiCopy
[3] Page de discussion du forum FreeCAD - MultiCopy

Cette page est extraite de https://wiki.freecad.org/Macro_MultiCopy

Contactez-nous !
Forum GitHub Mastodon Matrix IRC Gitter.im Discord Reddit Twitter Facebook LinkedIn

© L'équipe FreeCAD. Crédits des images de la page d'accueil (de haut en bas) : ppemawm, r-frank, epileftric, regis, rider_mortagnais, bejant.

Ce projet est soutenu par : , KiCad Services Corp. et autres parrains

GitHubAméliorer cette page sur GitHub