|
|
| Description |
|---|
| Cette macro copie plusieurs fois l'objet sélectionné, sur une grille de type matrice. Vous pouvez définir le nombre de lignes et de colonnes ainsi que la distance entre elles. Version macro : 1.0 Date dernière modification : 2014-05-04 Version FreeCAD : Toutes Téléchargement : Icône de la barre d'outils Auteur: Yorik |
| Auteur |
| Yorik |
| Téléchargement |
| Icône de la barre d'outils |
| Liens |
| Page des macros Comment installer une macro Comment créer une barre d'outils |
| Version Macro |
| 1.0 |
| Dernière modification |
| 2014-05-04 |
| Version(s) FreeCAD |
| Toutes |
| Raccourci clavier |
| None |
| Voir aussi |
| None |
Description
Cette macro copie l'objet sélectionné plusieurs fois selon une matrice rectangulaire. Vous pouvez définir le nombre de rangées et de colonnes, ainsi que la distances entre elles.
Script
ToolBar Icon
Macro_ArrayCopy.FCMacro
import FreeCAD, FreeCADGui, Part
from PySide import QtGui,QtCore
def proceed():
try:
u = (int(l1.text()),float(l2.text()))
v = (int(l3.text()),float(l4.text()))
except:
FreeCAD.Console.PrintError("Wrong input! Only numbers allowed...\n")
sel = FreeCADGui.Selection.getSelection()
if sel:
sel = sel[0]
name = sel.Name
shape = sel.Shape
for column in range(u[0]):
for row in range(v[0]):
if (column != 0) or (row != 0):
delta = FreeCAD.Vector(column*u[1],row*v[1],0)
newshape = sel.Shape.copy()
newshape.translate(delta)
newobject = FreeCAD.ActiveDocument.addObject("Part::Feature",name)
newobject.Shape = newshape
else:
FreeCAD.Console.PrintError("Error: One object must be selected")
hide()
def hide():
dialog.hide()
dialog = QtGui.QDialog()
dialog.resize(200,300)
dialog.setWindowTitle("Array")
la = QtGui.QVBoxLayout(dialog)
t1 = QtGui.QLabel("number of columns")
la.addWidget(t1)
l1 = QtGui.QLineEdit()
la.addWidget(l1)
t2 = QtGui.QLabel("distance between columns")
la.addWidget(t2)
l2 = QtGui.QLineEdit()
la.addWidget(l2)
t3 = QtGui.QLabel("number of rows")
la.addWidget(t3)
l3 = QtGui.QLineEdit()
la.addWidget(l3)
t4 = QtGui.QLabel("distance between rows")
la.addWidget(t4)
l4 = QtGui.QLineEdit()
la.addWidget(l4)
okbox = QtGui.QDialogButtonBox(dialog)
okbox.setOrientation(QtCore.Qt.Horizontal)
okbox.setStandardButtons(QtGui.QDialogButtonBox.Cancel
Cette page est extraite de https://wiki.freecad.org/Macro_ArrayCopy